遇到了问题?
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>