gpt4 book ai didi

android - 包含 espresso-contrib :2. 0 时的 java.lang.IncompatibleClassChangeError

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:02:46 24 4
gpt4 key购买 nike

我有一个 android.support.v7.widget.RecyclerView 的子类。当我使用应用程序和测试时它工作正常。

但是,当我在我的 gradle 应用程序文件中包含 espresso-contrib 时,当我尝试运行相同的测试时出现异常。该应用程序仍然有效。同样的问题出现在 sdk 版本 21 和 22,在 armv 模拟器和设备上。使用 x86 模拟器它会出现段错误。

Gradle

androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.0'

异常

java.lang.IncompatibleClassChangeError: xxx.DashboardActivity$1
at dalvik.system.DexFile.defineClassNative(Native Method)
at dalvik.system.DexFile.defineClass(DexFile.java:226)
at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
at dalvik.system.DexPathList.findClass(DexPathList.java:321)
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at xxx.DashboardActivity.onCreate(DashboardActivity.java:54)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.support.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:346)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

亚行日志

I/ActivityManager( 1229): START u0 {act=android.intent.action.MAIN flg=0x14000000 cmp=xxx/.activities.DashboardActivity} from uid 10059 on display 0
V/WindowManager( 1229): addAppToken: AppWindowToken{65964e3 token=Token{3f63d512 ActivityRecord{19743c9d u0 xxx/.activities.DashboardActivity t13}}} to stack=1 task=13 at 0
D/LifecycleMonitor( 2953): Lifecycle status change: xxx.activities.DashboardActivity@281384ef in: PRE_ON_CREATE
V/WindowManager( 1229): Adding window Window{2d974c1a u0 Starting xxx} at 2 of 7 (after Window{27a98488 u0 com.android.launcher/com.android.launcher2.Launcher})
W/RecyclerView( 2953): setScrollingTouchSlop(): bad argument constant 315513600; using default value
W/art ( 2953): Incompatible structural change detected: Structural change of android.support.v7.widget.RecyclerView$Adapter is hazardous (/data/dalvik-cache/x86/data@app@xxx-1@b
ase.apk@classes.dex at compile time, /data/dalvik-cache/x86/data@app@xxx.test-1@base.apk@classes.dex at runtime): Virtual method count off: 26 vs 25
W/art ( 2953): Landroid/support/v7/widget/RecyclerView$Adapter; (Compile time):
W/art ( 2953): Static fields:
W/art ( 2953): Instance fields:
W/art ( 2953): Z mHasStableIds
W/art ( 2953): Landroid/support/v7/widget/RecyclerView$AdapterDataObservable; mObservable
W/art ( 2953): Direct methods:
W/art ( 2953): <init>()V
W/art ( 2953): Virtual methods:
W/art ( 2953): bindViewHolder(Landroid/support/v7/widget/RecyclerView$ViewHolder;I)V
W/art ( 2953): createViewHolder(Landroid/view/ViewGroup;I)Landroid/support/v7/widget/RecyclerView$ViewHolder;
W/art ( 2953): getItemCount()I
W/art ( 2953): getItemId(I)J
W/art ( 2953): getItemViewType(I)I
W/art ( 2953): hasObservers()Z
W/art ( 2953): hasStableIds()Z
W/art ( 2953): notifyDataSetChanged()V
W/art ( 2953): notifyItemChanged(I)V
W/art ( 2953): notifyItemInserted(I)V
W/art ( 2953): notifyItemMoved(II)V
W/art ( 2953): notifyItemRangeChanged(II)V
W/art ( 2953): notifyItemRangeInserted(II)V
W/art ( 2953): notifyItemRangeRemoved(II)V
W/art ( 2953): notifyItemRemoved(I)V
W/art ( 2953): onAttachedToRecyclerView(Landroid/support/v7/widget/RecyclerView;)V
W/art ( 2953): onBindViewHolder(Landroid/support/v7/widget/RecyclerView$ViewHolder;I)V
W/art ( 2953): onCreateViewHolder(Landroid/view/ViewGroup;I)Landroid/support/v7/widget/RecyclerView$ViewHolder;
W/art ( 2953): onDetachedFromRecyclerView(Landroid/support/v7/widget/RecyclerView;)V
W/art ( 2953): onFailedToRecycleView(Landroid/support/v7/widget/RecyclerView$ViewHolder;)Z
W/art ( 2953): onViewAttachedToWindow(Landroid/support/v7/widget/RecyclerView$ViewHolder;)V
W/art ( 2953): onViewDetachedFromWindow(Landroid/support/v7/widget/RecyclerView$ViewHolder;)V
W/art ( 2953): onViewRecycled(Landroid/support/v7/widget/RecyclerView$ViewHolder;)V
W/art ( 2953): registerAdapterDataObserver(Landroid/support/v7/widget/RecyclerView$AdapterDataObserver;)V
W/art ( 2953): setHasStableIds(Z)V
W/art ( 2953): unregisterAdapterDataObserver(Landroid/support/v7/widget/RecyclerView$AdapterDataObserver;)V
W/art ( 2953): Landroid/support/v7/widget/RecyclerView$Adapter; (Runtime):
W/art ( 2953): Static fields:
W/art ( 2953): Instance fields:
W/art ( 2953): Z mHasStableIds
W/art ( 2953): Landroid/support/v7/widget/RecyclerView$AdapterDataObservable; mObservable
W/art ( 2953): Direct methods:
W/art ( 2953): <init>()V
W/art ( 2953): Virtual methods:
W/art ( 2953): bindViewHolder(Landroid/support/v7/widget/RecyclerView$ViewHolder;I)V
W/art ( 2953): createViewHolder(Landroid/view/ViewGroup;I)Landroid/support/v7/widget/RecyclerView$ViewHolder;
W/art ( 2953): getItemCount()I
W/art ( 2953): getItemId(I)J
W/art ( 2953): getItemViewType(I)I
W/art ( 2953): hasObservers()Z
W/art ( 2953): hasStableIds()Z
W/art ( 2953): notifyDataSetChanged()V
W/art ( 2953): notifyItemChanged(I)V
W/art ( 2953): notifyItemInserted(I)V
W/art ( 2953): notifyItemMoved(II)V
W/art ( 2953): notifyItemRangeChanged(II)V
W/art ( 2953): notifyItemRangeInserted(II)V
W/art ( 2953): notifyItemRangeRemoved(II)V
W/art ( 2953): notifyItemRemoved(I)V
W/art ( 2953): onAttachedToRecyclerView(Landroid/support/v7/widget/RecyclerView;)V
W/art ( 2953): onBindViewHolder(Landroid/support/v7/widget/RecyclerView$ViewHolder;I)V
W/art ( 2953): onCreateViewHolder(Landroid/view/ViewGroup;I)Landroid/support/v7/widget/RecyclerView$ViewHolder;
W/art ( 2953): onDetachedFromRecyclerView(Landroid/support/v7/widget/RecyclerView;)V
W/art ( 2953): onViewAttachedToWindow(Landroid/support/v7/widget/RecyclerView$ViewHolder;)V
W/art ( 2953): onViewDetachedFromWindow(Landroid/support/v7/widget/RecyclerView$ViewHolder;)V
W/art ( 2953): onViewRecycled(Landroid/support/v7/widget/RecyclerView$ViewHolder;)V
W/art ( 2953): registerAdapterDataObserver(Landroid/support/v7/widget/RecyclerView$AdapterDataObserver;)V
W/art ( 2953): setHasStableIds(Z)V
W/art ( 2953): unregisterAdapterDataObserver(Landroid/support/v7/widget/RecyclerView$AdapterDataObserver;)V
I/art ( 2953): Rejecting re-init on previously-failed class java.lang.Class<xxx.models.JSONArrayRecyclerViewAdapter>
I/art ( 2953): Rejecting re-init on previously-failed class java.lang.Class<xxx.models.JSONArrayRecyclerViewAdapter>
I/art ( 2953): Rejecting re-init on previously-failed class java.lang.Class<xxx.activities.DashboardActivity$1>
I/art ( 2953): Rejecting re-init on previously-failed class java.lang.Class<xxx.activities.DashboardActivity$1>
D/AndroidRuntime( 2953): Shutting down VM
E/MonitoringInstrumentation( 2953): Exception encountered by: Thread[main,5,main]. Dumping thread state to outputs and pining for the fjords.
E/MonitoringInstrumentation( 2953): java.lang.IncompatibleClassChangeError: xxx.activities.DashboardActivity$1
E/MonitoringInstrumentation( 2953): at dalvik.system.DexFile.defineClassNative(Native Method)
E/MonitoringInstrumentation( 2953): at dalvik.system.DexFile.defineClass(DexFile.java:226)
E/MonitoringInstrumentation( 2953): at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
E/MonitoringInstrumentation( 2953): at dalvik.system.DexPathList.findClass(DexPathList.java:321)
E/MonitoringInstrumentation( 2953): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
E/MonitoringInstrumentation( 2953): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
E/MonitoringInstrumentation( 2953): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
E/MonitoringInstrumentation( 2953): at xxx.activities.DashboardActivity.onCreate(DashboardActivity.java:54)
E/MonitoringInstrumentation( 2953): at android.app.Activity.performCreate(Activity.java:5990)
E/MonitoringInstrumentation( 2953): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
E/MonitoringInstrumentation( 2953): at android.support.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:346)
E/MonitoringInstrumentation( 2953): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
E/MonitoringInstrumentation( 2953): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
E/MonitoringInstrumentation( 2953): at android.app.ActivityThread.access$800(ActivityThread.java:151)
E/MonitoringInstrumentation( 2953): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
E/MonitoringInstrumentation( 2953): at android.os.Handler.dispatchMessage(Handler.java:102)
E/MonitoringInstrumentation( 2953): at android.os.Looper.loop(Looper.java:135)
E/MonitoringInstrumentation( 2953): at android.app.ActivityThread.main(ActivityThread.java:5257)
E/MonitoringInstrumentation( 2953): at java.lang.reflect.Method.invoke(Native Method)
E/MonitoringInstrumentation( 2953): at java.lang.reflect.Method.invoke(Method.java:372)
E/MonitoringInstrumentation( 2953): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
E/MonitoringInstrumentation( 2953): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

最佳答案

Espresso 依赖项已过时。已报告,将在未来修复。 https://code.google.com/p/android-test-kit/issues/detail?id=139

关于android - 包含 espresso-contrib :2. 0 时的 java.lang.IncompatibleClassChangeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com