我正在构建一个android React Native模块,我的代码从第三方SDK导入类,该SDK以aar文件的形式提供。我应该如何将此文件捆绑到我的模块中?我尝试添加
allprojects {
repositories {
flatDir {
dirs: 'libs'
}
}
}
和
dependencies {
... other deps ...
compile (name:'my-external-lib', ext:'aar')
}
添加到build.gradle文件并将此my-external-lib.aar文件放入libs/
文件夹中,但在使用包含的react-native-my-module构建MyApp react-native应用程序时仍会出现错误:
* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration
':app:_developmentDebugApkCopy'.
> Could not find :my-external-lib:.
Required by:
MyApp:app:unspecified > MyApp:react-native-my-module:unspecified
有什么建议吗?
7条答案
按热度按时间sulc1iza1#
看起来我自己解决了这个问题。看起来你需要在主项目中定义
repositories
,以允许子项目定位它们的依赖项。将其放入主项目build.gradle文件:
成功了。
不过我认为,这不是包含具有依赖项的子项目的正确方法,因为如果该库是来自npm的第三方库,您显然不知道如何修改您的build.gradle文件。那么,有人能解释一下为什么这样做,以及应该如何以正确的方式完成吗?
okxuctiv2#
在您的模块的
android/build.gradle
文件中,您将希望添加.aar
作为工件。vm0i2vca3#
你所写的都是绝对正确的,只是你写错了地方
您已经在build.gradle(项目:project_name)中编写了代码
您只需要在build.gradle(Module:app)文件中编写代码,并且必须将.arr文件粘贴到项目库文件夹中
也就是说
存储库{
平面目录{
目录'库'
}
}
相关性{
...其他部门...
编译(名称:'my-external-lib',扩展名:'aar')
}
cig3rfwq4#
在您的settings.gradle中,您应该包含此库,例如:
您可以将其编译为普通项目,例如:
compile project(':my-external-lib')
此外,您的
my-external-lib
build.gradle应该是这样的:nlejzf6q5#
我成功地在android react原生模块中包含了一个第三方的
.aar
文件。请看我对这个问题的回答:如何在React Native Android构建中包含AAR?
8ulbf1ek6#
经过这么长时间的努力,我终于明白了你应该怎么做:
1.新增
存储库{ flatDir { 目录'库' } }
导入项目:grindle(不是模块.grindle)和
1.将依赖项添加到应用程序:grindle(而不是module.grindle)
a11xaf1n7#
如果您尝试在react-native模块中使用第三方软件
1.在React模块/android/libs中添加aar文件
1.新增
所有项目{存储库{平面目录{目录:在reactnativeModule/android/build.grindle的build.gradle中的“库”} } }
1.仅在
dependencies { implementation "com.facebook.react:react-native:${safeExtGet('reactnativeVersion', '+')}" of reactnativeModule/android/build.grindle
中添加依赖项