gradle 如何在react-native库中包含android子模块?

aelbi1ox  于 12个月前  发布在  React
关注(0)|答案(1)|浏览(143)

我已经能够分别做这两件事了:
1.将本地Android项目链接到我的React Native应用,并包含一个Native Module(这个本地Android项目是Open CV)。我的Native Module使用OpenCV代码,通过Android Studio(或settings.gradle文件),我已经能够将OpenCV项目添加为我的Native Module的子模块,并成功运行我的应用。
1.创建并发布一个自定义Native Module作为单独的代码库,并在我的应用中使用此Native Module。
然而,当我尝试同时做这两件事时,我的应用程序崩溃了,因为它找不到OpenCV代码。我注意到,当我npm publish我的Native Module时,OpenCV代码肯定没有包含在tarball中。
我不确定我是否需要以某种方式构建它或其他东西?不太精通Android或React Native开发,所以如果我在这里错过了一些基本的东西,请道歉。

jchrr9hc

jchrr9hc1#

我可以通过将api project(path: ':opencv')添加到react librarybuild.gradle中的dependencies块(也可以与implementation project(path: ':opencv')一起使用),并将以下内容添加到react appsettings.gradle中来实现这一点:

def opencvsdk='path/to/opencv-4.6.0-android-sdk/OpenCV-android-sdk'
include ':opencv'
project(':opencv').projectDir = new File(opencvsdk + '/sdk')

字符串
我现在也把上面的代码添加到了 librarysettings.gradle中,虽然我认为这没有必要(我先添加了这个,它没有做任何事情,然后我把它添加到 appsettings.gradle中,它就工作了。我只是还没有删除它)。

相关问题