Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ClassNotFoundException:没有';“找不到类”;android.support.v4.content.FileProvider“;androidx迁移后_Java_Android_Android Studio_Androidx - Fatal编程技术网

Java ClassNotFoundException:没有';“找不到类”;android.support.v4.content.FileProvider“;androidx迁移后

Java ClassNotFoundException:没有';“找不到类”;android.support.v4.content.FileProvider“;androidx迁移后,java,android,android-studio,androidx,Java,Android,Android Studio,Androidx,我正在尝试迁移到androidx。我在Android Studio中使用了迁移工具。当我这样做时,我会在运行我的应用程序时得到以下堆栈跟踪 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.peerke.outdoorpuzzlegame.debug, PID: 10901 java.lang.RuntimeException: Unable to get provider android.support.v4.conten

我正在尝试迁移到androidx。我在Android Studio中使用了迁移工具。当我这样做时,我会在运行我的应用程序时得到以下堆栈跟踪

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

为什么要加载旧版本的FileProvider


根据堆栈跟踪,可能您仍在清单的
元素中使用旧的包名。

多亏了@commonware

更多说明:

要做什么,请在
AndroidManifest.xml
中的
中找到
android.support.v4.FileProvider


manifiest.xml文件中将其更改为
androidx.core.content.FileProvider

<provider
        android:name="android.support.v4.content.FileProvider"
      .....
</provider>
Refactor)
  • 单击“迁移到AndroidX”按钮
  • 它起作用了

  • 你救了我一天!我在舱单中的提供者为-@CommonsWare@CommonsWare----无法获取提供程序android.support.v4.content.FileProvider:java.lang.ClassNotFoundException:未找到类“android.support.v4.content.FileProvider”和应用程序强制closed@ArnoldBrown:显然,您缺少具有该类的依赖项。请参见Android Studio(项目树底部)中的外部库列表,其中包含
    com.Android.support:support compat
    ,了解某些版本。如果没有,则为您正在使用的支持库的任何版本添加一个依赖项。如果您已经在外部库中安装了
    com.android.support:support compat
    ,但是您正在使用multidex,您需要配置multidex,以便
    FileProvider
    位于主DEX文件中。我们的清单中没有旧的包名。我们仍然面临这个问题。您可以在这里找到androidx迁移的完整列表:这是一个完整的“复制过去”答案。
    <provider
        android:name="androidx.core.content.FileProvider"
        ......
    </provider>