我今天运行了我的Android RN项目,并遇到以下错误
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: android.support.v4.app.INotificationSideChannel$Stub
我相信,要解决此问题,必须迁移到AndroidX。
我备份了项目,并尝试使用Android Studio进行此操作无济于事。我还尝试在gradle.properties
文件
android.enableJetifier=true
android.useAndroidX=true
此后,我尝试从我的app / build.gradle中删除受支持的库,并将目标targetSdkVersion
设置为28。
这些尝试给我带来了更多的错误,特别是这一次
Execution failed for task ':react-native-navigation:compileReactNative57_5DebugJavaWithJavac'.
我在Wix Navigation V2中使用React Native 0.58.6。 帮助将不胜感激
答案 0 :(得分:2)
昨天我遇到了同样的问题,最后弄明白了,上述错误的原因是在将您的android项目迁移到androidx之后,您的许多react-native库都提供了本机Java代码,但尚未更新,我能够通过运行
即可使用此库jetifier解决该问题npm i --save-dev jetifier
npx jetify
但就我而言,仍然有一些库引起某些问题,例如 react-native-fast-image ,这是一种解决方法,我在/内部创建了一个 gradle.properties node_modules / react-native-fast-image / android并为此模块停用了AndroidX和Jetifier:
android.useAndroidX=false
android.enableJetifier=false
答案 1 :(得分:1)
一旦您迁移到AndroidX,艾哈迈德(Ahmed)发布的答案将是一个很好的解决方案。就我而言,我还不想这样做,但发现我的应用程序中只有一个库正在使用this线程
中的AndroidX简而言之,我的解决方案是简单地yarn upgrade react-native-device-info@latest
重建后,应用程序将按预期构建