gpt4 book ai didi

android - 如何解决 react native 和 android sdk 之间的重复类错误?

转载 作者:行者123 更新时间:2023-12-04 23:50:18 41 4
gpt4 key购买 nike

我的 android 应用程序有一个第三方图像识别 sdk 库。不,我想使用 native 模块将其集成到我的 react native 项目中。我在 sdk 的代码和 react native 代码之间有一些冲突。
我已尝试通过以下代码从 native react 中消除冲突

implementation ("com.facebook.react:react-native:+") {
exclude group: "com.facebook.yoga", module: "proguard-annotations"
}
我的错误如下所示
Duplicate class com.facebook.proguard.annotations.DoNotStrip found in modules 3rd party sdk (3rdpartysdk.aar) and jetified-proguard-annotations-1.19.0 (com.facebook.yoga:proguard-annotations:1.19.0)

Duplicate class com.facebook.proguard.annotations.KeepGettersAndSetters found in modules 3rd party sdk (3rdpartysdk.aar) and jetified-react-native-0.67.1-runtime (com.facebook.react:react-native:0.67.1)
我从互联网上尝试了几件事,但似乎没有任何帮助
react 原生:0.67.1

最佳答案

这是非常棘手的。在不知道第三方库的情况下,替代方案是:
1.-从根的 gradle 文件中删除冲突的传递依赖。与您正在做的类似,但针对整个路径,您可以根据需要对其进行自定义:

subprojects {
afterEvaluate {project ->

project.configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'com.facebook.react' && details.requested.name.equals('react-native')){
//add exclusion rules here
}
}
}
}
}
2.-从冲突库之一中删除冲突类。鉴于该类将在路径中,它可能会起作用,但这取决于该类的使用方式。这里的一个额外选择是从所有库中删除该类,然后在所有受影响的库中插入一个动态依赖项。所以你必须使用复制任务,比如 this .理论例子:
task unzipJar(type: Copy) {
from zipTree('$yourLibrary.aar')
into ("$buildDir/libs/$yourLibrary")
include "**/*.class"
exclude "**/Unmodifiable.class"
}

subprojects {
afterEvaluate {project ->

project.configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'com.facebook.react' && details.requested.name.equals('react-native')){
files("$buildDir/libs/$yourLibrary") {
builtBy "unzipJar"
}
}
}
}
}
}
另一种方法是运行 unzipJar 任务,然后将生成的 aar 放入本地 maven 存储库中,这样您就可以正常替换依赖项。祝你好运。

关于android - 如何解决 react native 和 android sdk 之间的重复类错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71524478/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com