我正在尝试构建一个利用第三方AAR提供的功能的React-Native Android应用,但是对于总体流程以及所需的细节都不清楚。
我已经使用此AAR成功构建了Android Studio应用。
而且,我已经在这里搜索了文档(以及在其他地方发布的文档):https://facebook.github.io/react-native/docs/tutorial,但对于正确的过程仍然不清楚。
我最初的尝试集中在试图在gradle文件中找到正确的“实现”和/或“编译”命令以及在源文件中找到正确的“ import”语句的情况。
我曾经认为正确设置这些内容可以访问AAR中的类,但是在进行了许多不成功的尝试之后,现在我想知道是否还需要做更多的事情。
例如,我是否需要按以下说明构造桥模块:https://medium.com/@yushulx/react-native-bridging-modules-for-android-from-scratch-c651eeee7872?
基于我在该主题上发现的一些问题/答案,我已将此代码放置在顶级build.gradle文件的“ allprojects”部分中:
flatDir {
dirs 'libs'}
}
...并且在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'])
}
...并且在我的app.js文件中包含了各种形式的“导入”语句,例如:
import {EENMediaPlayerListener} from 'EENSDK';...
当我执行“ react-native run-android”时,收到以下错误消息:
error: bundling failed: Error: Unable to resolve module `EENSDK` from `C:\Users\Chuck\EE\App.js`: Module `EENSDK` does not exist in the Haste module map
EENSDK.aar位于'C:\ Users \ Chuck \ EE \ android \ app \ libs'目录中。
如果我删除了“ import”语句,它将编译而不会出错。