第1步:npm安装react-native-image-picker
......应用仍然可以正常运行.....
步骤2:react-native链接react-native-图像选择器
...应用程序不再编译
当我清洁gradle时出现错误: “ 无法将进程工作目录设置为'C:\ code \ rn \ xs \ node_modules \ react-native-image-picker \ example \ android':无法设置当前目录(错误号3)”
当我尝试在gradle中重建时,我也会收到错误消息: “ 清单合并失败:[com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91的属性application @ appComponentFactory value =(android.support.v4.app.CoreComponentFactory) 也存在于[androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value =(androidx.core.app.CoreComponentFactory)。 建议:在AndroidManifest.xml:6:5-117的元素上添加'tools:replace =“ android:appComponentFactory”'以覆盖“。
所以我建议错误消息,并将'tools:replace =“ android:appComponentFactory”'添加到应用程序元素........
我现在在清理时仍会收到相同的错误.....但是重建时的错误有所不同:
“ tools:replace在属性android:appComponentFactory的第10行指定,但未指定新值。”
。
请帮忙!
答案 0 :(得分:3)
作为Lenoarod答案的补充,您可以使用jetifier library。它将帮助您将所有尚未转换为AndroidX的库转换。
根据其文档
因此,现在您需要将应用程序转换为AndroidX,但是您的许多react-native库都附带了本机Java代码并且尚未更新。怎么做?
首先,使用Android Studio的重构工具将您的应用重新转换为:Android开发者文档
1. npm install --save-dev jetifier
2. npx jetify
3. npx react-native run-android(您的应用程序应正确编译和运行)
4.在package.json的postinstall目标中调用npx jetify run(每当依赖项更新时,您都必须再次进行jetify)
答案 1 :(得分:1)
您的react-native版本使用Androix库,但是您安装的react-native-image-picker使用android.support.v4。因此,当您构建项目时,就会发生该错误。我建议采用两种方法解决此问题。
一种解决方案是您更新react-native-image-picker
版本。新版本支持androix支持的库。以下是official
guide
To use this library you need to ensure you match up with the correct version of React Native you are using. the flowing is the [official guide][1].
p.s. React Native introduced AndroidX support in 0.60, which is a breaking change for most libraries (incl. this one) using native Android functionality.
如果必须使用旧版本,则可以修改react-native-image-picker
相关文件。例如ImagePickerModule,ImageConfig。它们位于android / src / main文件夹中
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StyleRes;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AlertDialog;
答案 2 :(得分:0)
都谢谢。 lzzuddiin的回答是最接近的。...我要做的只是菜单栏中的“ Refactor> Migrate to AndroidX”;单独解决了问题