问题描述
我正在尝试迁移到 androidx.我使用了 Android Studio 中的迁移工具.当我这样做时,当我运行我的应用程序时,我会得到以下堆栈跟踪.
I'm trying to move to migrate to androidx. I used the migration tool in Android Studio. When I do this I get the following stacktrace when I run my app.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.peerke.outdoorpuzzlegame.debug, PID: 10901
java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.content.FileProvider" on path: DexPathList[[zip file "/data/app/com.peerke.outdoorpuzzlegame.debug-IBtFsngoLqc-cQb_hOO5wQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.peerke.outdoorpuzzlegame.debug-IBtFsngoLqc-cQb_hOO5wQ==/lib/x86, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:6376)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5932)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5847)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1637)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6649)
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:826)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.content.FileProvider" on path: DexPathList[[zip file "/data/app/com.peerke.outdoorpuzzlegame.debug-IBtFsngoLqc-cQb_hOO5wQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.peerke.outdoorpuzzlegame.debug-IBtFsngoLqc-cQb_hOO5wQ==/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.AppComponentFactory.instantiateProvider(AppComponentFactory.java:121)
at androidx.core.app.CoreComponentFactory.instantiateProvider(CoreComponentFactory.java:62)
at android.app.ActivityThread.installProvider(ActivityThread.java:6360)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5932)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5847)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1637)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6649)
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:826)
异常是正确的.android.support.v4.content.FileProvider 在我的应用程序中不存在.但是 androidx.core.content.FileProvider 包含在我的应用程序中.最大的问题是为什么它要加载旧版本的 FileProvider?
The exception is correct. android.support.v4.content.FileProvider doesn't exist in my app. But androidx.core.content.FileProvider is included in my app.The big question is why does it want to load the old version of FileProvider?
推荐答案
根据堆栈跟踪,您可能仍在清单中的 元素中使用旧包名称.
Based on the stack trace, perhaps you are still using the old package name in the <provider>
element in the manifest.
这篇关于ClassNotFoundException:未找到类“android.support.v4.content.FileProvider";androidx迁移后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!