错误描述
使用androidx时,activity初始化时就报如下错误:
2019-03-05 16:24:58.278 28899-28899/? I/zygote: Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2423)
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:638)
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:519)
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:467)
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:141)
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at androidx.databinding.ViewDataBinding androidx.databinding.DataBindingUtil.setContentView(android.app.Activity, int, androidx.databinding.DataBindingComponent) (DataBindingUtil.java:303)
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at androidx.databinding.ViewDataBinding androidx.databinding.DataBindingUtil.setContentView(android.app.Activity, int) (DataBindingUtil.java:284)
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at void com.google.samples.apps.sunflower.GardenActivity.onCreate(android.os.Bundle) (GardenActivity.kt:41)
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6975)
2019-03-05 16:24:58.278 28899-28899/? I/zygote: at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1213)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2770)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2892)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1593)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at void android.os.Looper.loop() (Looper.java:164)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6541)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
2019-03-05 16:24:58.279 28899-28899/? I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/com.google.samples.apps.sunflower-GA9rYbqJxy2r-Lp_2xsaIA==/base.apk"],nativeLibraryDirectories=[/data/app/com.google.samples.apps.sunflower-GA9rYbqJxy2r-Lp_2xsaIA==/lib/x86, /system/lib, /vendor/lib]]
2019-03-05 16:24:58.279 28899-28899/? I/zygote: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
2019-03-05 16:24:58.280 28899-28899/? I/zygote: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
2019-03-05 16:24:58.280 28899-28899/? I/zygote: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
2019-03-05 16:24:58.280 28899-28899/? I/zygote: at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2423)
2019-03-05 16:24:58.280 28899-28899/? I/zygote: at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:638)
2019-03-05 16:24:58.280 28899-28899/? I/zygote: at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:519)
2019-03-05 16:24:58.280 28899-28899/? I/zygote: at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:467)
2019-03-05 16:24:58.280 28899-28899/? I/zygote: at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:141)
2019-03-05 16:24:58.280 28899-28899/? I/zygote: at androidx.databinding.ViewDataBinding androidx.databinding.DataBindingUtil.setContentView(android.app.Activity, int, androidx.databinding.DataBindingComponent) (DataBindingUtil.java:303)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at androidx.databinding.ViewDataBinding androidx.databinding.DataBindingUtil.setContentView(android.app.Activity, int) (DataBindingUtil.java:284)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void com.google.samples.apps.sunflower.GardenActivity.onCreate(android.os.Bundle) (GardenActivity.kt:41)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6975)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1213)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2770)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2892)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1593)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void android.os.Looper.loop() (Looper.java:164)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6541)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-03-05 16:24:58.281 28899-28899/? I/zygote: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
2019-03-05 16:24:58.282 28899-28899/? I/zygote: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
分析
经过仔细确认,发现在API 28(安卓9.0)无此问题,低于此版本的都有问题。
不过遗憾的是,此问题暂未找到解决方案。
附录
相关资料:
https://github.com/facebook/flipper/issues/146
https://issuetracker.google.com/issues/120750246
关于我
厦门大学计算机专业 | 前华为工程师
分享编程技术,没啥深度,但看得懂,适合初学者。
Java | 安卓 | 前端 | 小程序 | 鸿蒙
公众号:花生皮编程