Skip to content

遇到了问题?

Android 运行后报错 java.lang.RuntimeException: Unable to get provider com.bytedance.sdk.openadsdk.TTFileProvider

log
java.lang.RuntimeException: Unable to get provider com.bytedance.sdk.openadsdk.TTFileProvider: java.lang.ClassNotFoundException: Didn't find class "com.bytedance.sdk.openadsdk.TTFileProvider" on path: DexPathList[[zip file "/data/app/~~D70l8r5LGAjr5LVril0jxA==/com.rn075-dYkALjWB-VWKzwsP-1h0ag==/base.apk"],nativeLibraryDirectories=[/data/app/~~D70l8r5LGAjr5LVril0jxA==/com.rn075-dYkALjWB-VWKzwsP-1h0ag==/lib/arm64, /data/app/~~D70l8r5LGAjr5LVril0jxA==/com.rn075-dYkALjWB-VWKzwsP-1h0ag==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
    at android.app.ActivityThread.installProvider(ActivityThread.java:7859)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:7371)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7078)
    at android.app.ActivityThread.access$1600(ActivityThread.java:276)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2131)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:210)
    at android.os.Looper.loop(Looper.java:299)
    at android.app.ActivityThread.main(ActivityThread.java:8293)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.bytedance.sdk.openadsdk.TTFileProvider" on path: DexPathList[[zip file "/data/app/~~D70l8r5LGAjr5LVril0jxA==/com.rn075-dYkALjWB-VWKzwsP-1h0ag==/base.apk"],nativeLibraryDirectories=[/data/app/~~D70l8r5LGAjr5LVril0jxA==/com.rn075-dYkALjWB-VWKzwsP-1h0ag==/lib/arm64, /data/app/~~D70l8r5LGAjr5LVril0jxA==/com.rn075-dYkALjWB-VWKzwsP-1h0ag==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at android.app.AppComponentFactory.instantiateProvider(AppComponentFactory.java:147)
    at androidx.core.app.CoreComponentFactory.instantiateProvider(CoreComponentFactory.java:67)
    at android.app.ActivityThread.installProvider(ActivityThread.java:7843)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:7371)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7078)
    at android.app.ActivityThread.access$1600(ActivityThread.java:276)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2131)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:210)
    at android.os.Looper.loop(Looper.java:299)
    at android.app.ActivityThread.main(ActivityThread.java:8293)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
    Suppressed: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/content/FileProvider;
        at java.lang.VMClassLoader.findLoadedClass(Native Method)
        at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
        ... 15 more
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.content.FileProvider" on path: DexPathList[[zip file "/data/app/~~D70l8r5LGAjr5LVril0jxA==/com.rn075-dYkALjWB-VWKzwsP-1h0ag==/base.apk"],nativeLibraryDirectories=[/data/app/~~D70l8r5LGAjr5LVril0jxA==/com.rn075-dYkALjWB-VWKzwsP-1h0ag==/lib/arm64, /data/app/~~D70l8r5LGAjr5LVril0jxA==/com.rn075-dYkALjWB-VWKzwsP-1h0ag==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        ... 18 more

解决方案,打开项目 android/gradle.properties 配置文件,增加 android.enableJetifier=true 如下配置项

……
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
android.enableJetifier=true

# Use this property to specify which architecture you want to build.
……

Android 编译报错 AndroidManifest.xml tools:replace="android:allowBackup" 合并出错?

log
> Task :app:processDebugMainManifest FAILED
[com.zmide.ads:com_bytedance_sdk_openadsdk_adhost:6.6.0.7] /Android/gradle/caches/transforms-4/0c6bef5d7dbe11938bf8f24b0a426ff4/transformed/jetified-com_bytedance_sdk_openadsdk_adhost-6.6.0.7/AndroidManifest.xml:115:9-293 Warning:
        Element activity#com.byted.live.lite.Activity_bytelive_standard at [com.zmide.ads:com_bytedance_sdk_openadsdk_adhost:6.6.0.7] AndroidManifest.xml:115:9-293 duplicated with element declared at [com.zmide.ads:com_bytedance_sdk_openadsdk_adhost:6.6.0.7] AndroidManifest.xml:108:9-293
[com.zmide.ads:com_bytedance_sdk_openadsdk_adhost:6.6.0.7] /Android/gradle/caches/transforms-4/0c6bef5d7dbe11938bf8f24b0a426ff4/transformed/jetified-com_bytedance_sdk_openadsdk_adhost-6.6.0.7/AndroidManifest.xml:125:9-261 Warning:
        Element activity#com.byted.live.lite.Activity_main_standard at [com.zmide.ads:com_bytedance_sdk_openadsdk_adhost:6.6.0.7] AndroidManifest.xml:125:9-261 duplicated with element declared at [com.zmide.ads:com_bytedance_sdk_openadsdk_adhost:6.6.0.7] AndroidManifest.xml:113:9-261

See https://developer.android.com/r/studio-ui/build/manifest-merger for more information about the manifest merger.

info 💡 Tip: Make sure that you have set up your development environment correctly, by running npx react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctor

/react-native-gromore/example/android/app/src/debug/AndroidManifest.xml:10:7-34 Error:
        Attribute application@allowBackup value=(false) from AndroidManifest.xml:10:7-34
        is also present at [com.zmide.ads:com_bytedance_sdk_openadsdk_adhost:6.6.0.7] AndroidManifest.xml:38:18-44 value=(true).
        Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xml:5:5-8:50 to override.

FAILURE: Build failed with an exception.

解决方案: 打开项目 android/app/src/main/AndroidManifest.xml 文件,在 manifest 标签下增加 xmlns:tools="http://schemas.android.com/tools" 在 application 标签下增加 tools:replace="android:allowBackup"

xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
    <application
      android:name=".MainApplication"
      ……
      android:allowBackup="false"
      tools:replace="android:allowBackup">
      <!-- …… -->
    </application>
</manifest>