React Native:迁移到AndroidX

jsc*_*uss 5 android android-studio react-native react-native-navigation

我今天运行我的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
Run Code Online (Sandbox Code Playgroud)

我相信为了解决此问题,需要迁移到AndroidX。

我备份了我的项目,并尝试使用Android Studio无效。我也尝试过在gradle.properties文件中手动设置

android.enableJetifier=true
android.useAndroidX=true
Run Code Online (Sandbox Code Playgroud)

之后,我尝试从我的app / build.gradle中删除支持的库,并将目标设置targetSdkVersion为28。

这些尝试给我带来了更多错误,特别是这一次

Execution failed for task ':react-native-navigation:compileReactNative57_5DebugJavaWithJavac'.

我在Wix Navigation V2中使用React Native 0.58.6。帮助将不胜感激

Ahm*_*mam 10

昨天我遇到了同样的问题,终于解决了,上述错误的原因是在将您的android项目迁移到androidx之后,您的许多react-native库都提供了本机Java代码,但尚未更新,因此我能够解决它通过简单地运行此库jetifier

npm i --save-dev jetifier
npx jetify
Run Code Online (Sandbox Code Playgroud)

但就我而言,仍然有一些库引起一些问题,例如我们将react-native-fast-image作为一种解决方法,我在/ node_modules / react-native-fast-image / android内创建了gradle.properties并停用了AndroidX和Jetifier该模块:

android.useAndroidX=false
android.enableJetifier=false
Run Code Online (Sandbox Code Playgroud)