问题
It took a lot of effort to migrate to androidX, but after all that I am still unable to resolve one issue.
When I try to run my app I get this error:
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.access$1100(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
... 6 more
The pointed line 72 of MainActivity: setContentView(R.layout.activity_main);
My 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>
I have no idea what causes the problem. I've searched stack overflow, but found no solution. Any suggestion would be appreciated.
回答1:
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
From these, I would guess that you haven't changed your dependencies and XML tags when migrating to AndroidX. The Refactor > Migrate to AndroidX tool doesn't do that for you, unfortunately, it only changes Java references. See this for more information. When you are done changing the Gradle dependencies, please change all older Android support tags to newer AndroidX tags in your XML files.
来源:https://stackoverflow.com/questions/57136829/cant-run-the-app-after-migration-to-androidx-android-view-inflateexception