我试图在我的React Native Android应用程序中包含AAR文件,以便我可以使用本机代码访问其功能。如何捆绑AAR以便本机代码可以使用React Native Android导入它?谢谢!
编译时我得到的错误是:
~\app\android\app\src\main\java\com\grind\GrindModule.java:13: error: package com.estimote.sdk does not exist
import com.estimote.sdk.EstimoteSDK;
^
我做了以下更改:
创建android/app/libs/estimote-sdk.aar
。
创建反应原生本机模块(之前我已经完成了几次,它在我尝试使用SDK之前一直正常工作)。
android/app/build.gradle
dependencies {
compile(name:'estimote-sdk', ext:'aar')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:23.0.1"
compile "com.facebook.react:react-native:+" // From node_modules
}
android/build.gradle
...
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
flatDir {
dirs 'libs'
}
}
}
以下是包含SDK的说明: https://github.com/Estimote/Android-SDK#installation
答案 0 :(得分:9)
将library.aar
文件复制到react-native-module-name/android/libs
中。如果libs
文件夹不存在,请创建它。
在react-native-module-name/android/build.gradle
中:
dependencies {
implementation fileTree(dir: "libs", include: ["*.aar"])
implementation 'com.facebook.react:react-native:+' // From node_modules
}
答案 1 :(得分:3)
我尝试了很多方法,
与ANDROID STUDIO打开文件夹,只需添加AAR或JAR
最简单的方法是使用android studio在de react native project中打开生成的文件夹。他们添加aar将aar添加到常规项目中。
在android Studio中一如既往地添加(Friendly Remainder):
答案 2 :(得分:1)
我想出了两种方法来包含AAR进行编译。
Estimote SDK的具体方法是将此行添加到android/app/build.gradle
:
dependencies {
...
compile 'com.estimote:sdk:1.0.3:release@aar'
}
请注意,对于SDK的发布版本,我的文档已经过时了,因此要弄清楚要使用的类和方法是很棘手的。
我在构建中包含AAR的另一种方式是以下更改:
创建文件夹android/libs
,将AAR文件放在其中。
在android/app/build.gradle
:
fileTree(dir: 'libs', include: '**/*.aar')
.each { File file ->
dependencies.add("compile", [
name: file.name.lastIndexOf('.').with { it != -1 ? file.name[0..<it] : file.name },
ext: 'aar'
])
}
完成后我就可以开始导入类和方法了。