迁移到 androidX 后无法 运行 应用程序:android.view.InflateException
Can't run the app after migration to androidX: android.view.InflateException
迁移到androidX费了一番功夫,但终究还是解决不了一个问题。
当我尝试 运行 我的应用程序时出现此错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{studio.dookola.zgkim/studio.dookola.zgkim.MainActivity}: android.view.InflateException: Binary XML file line #12: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: android.view.InflateException: Binary XML file line #12: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.CoordinatorLayout" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/base.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_dependencies_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_resources_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_0_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_1_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_2_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_3_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_4_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_5_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_6_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_7_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_8_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.view.LayoutInflater.createView(LayoutInflater.java:606)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:965)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:859)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
2019-07-21 22:15:47.519 18965-18965/studio.dookola.zgkim E/AndroidRuntime: at studio.dookola.zgkim.MainActivity.onCreate(MainActivity.java:72)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_resources_apk.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:354)
at dalvik.system.DexFile.<init>(DexFile.java:101)
at dalvik.system.DexFile.<init>(DexFile.java:75)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:394)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:354)
at dalvik.system.DexPathList.<init>(DexPathList.java:164)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:74)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:74)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:40)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:727)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:810)
at android.app.LoadedApk.getResources(LoadedApk.java:1032)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2345)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5749)
at android.app.ActivityThread.access00(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
... 6 more
MainActivity指向的第72行:setContentView(R.layout.activity_main);
我的 MainActivity .xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start"
layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
/>
</androidx.drawerlayout.widget.DrawerLayout>
我不知道是什么导致了这个问题。
我搜索了堆栈溢出,但没有找到解决方案。
如有任何建议,我们将不胜感激。
Caused by: android.view.InflateException: Binary XML file line #12: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
据此,我猜测您在迁移到 AndroidX 时没有更改依赖项和 XML 标记。重构 > 迁移到 AndroidX 工具不会为您执行此操作,不幸的是,它只会更改 Java 引用。有关详细信息,请参阅 this。完成更改 Gradle 依赖项后,请将 XML 文件中所有较旧的 Android 支持标签更改为较新的 AndroidX 标签。
迁移到androidX费了一番功夫,但终究还是解决不了一个问题。
当我尝试 运行 我的应用程序时出现此错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{studio.dookola.zgkim/studio.dookola.zgkim.MainActivity}: android.view.InflateException: Binary XML file line #12: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: android.view.InflateException: Binary XML file line #12: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.CoordinatorLayout" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/base.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_dependencies_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_resources_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_0_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_1_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_2_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_3_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_4_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_5_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_6_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_7_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_8_apk.apk", zip file "/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.view.LayoutInflater.createView(LayoutInflater.java:606)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:965)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:859)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
2019-07-21 22:15:47.519 18965-18965/studio.dookola.zgkim E/AndroidRuntime: at studio.dookola.zgkim.MainActivity.onCreate(MainActivity.java:72)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/studio.dookola.zgkim-dWUlCZ9saQuQRJ7D8y0mqQ==/split_lib_resources_apk.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:354)
at dalvik.system.DexFile.<init>(DexFile.java:101)
at dalvik.system.DexFile.<init>(DexFile.java:75)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:394)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:354)
at dalvik.system.DexPathList.<init>(DexPathList.java:164)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:74)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:74)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:40)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:727)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:810)
at android.app.LoadedApk.getResources(LoadedApk.java:1032)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2345)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5749)
at android.app.ActivityThread.access00(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
... 6 more
MainActivity指向的第72行:setContentView(R.layout.activity_main);
我的 MainActivity .xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start"
layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
/>
</androidx.drawerlayout.widget.DrawerLayout>
我不知道是什么导致了这个问题。 我搜索了堆栈溢出,但没有找到解决方案。 如有任何建议,我们将不胜感激。
Caused by: android.view.InflateException: Binary XML file line #12: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
据此,我猜测您在迁移到 AndroidX 时没有更改依赖项和 XML 标记。重构 > 迁移到 AndroidX 工具不会为您执行此操作,不幸的是,它只会更改 Java 引用。有关详细信息,请参阅 this。完成更改 Gradle 依赖项后,请将 XML 文件中所有较旧的 Android 支持标签更改为较新的 AndroidX 标签。