我正在构建一个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
有什么建议吗?
答案 0 :(得分:2)
看起来我自己设法解决了这个问题。
您似乎需要在主项目中定义repositories
以允许子项目找到它们的依赖项。
将它放到主项目build.gradle文件中:
repositories {
flatDir {
dirs: 'libs'
}
}
做了这个伎俩。
我相信,这不是包含具有依赖项的子项目的正确方法,因为如果此库是来自npm的第三方库,您显然无法知道如何修改build.gradle文件。 那么,有人可以解释为什么这种方法有效以及如何以正确的方式完成呢?
答案 1 :(得分:2)
在您模块的aria-labelledby
文件中,您希望将 <ng-container *ngFor="let client of events.data.clients">
<div>
<div>
<div class="user__info">
<span class="user__name">{{ client.first_name }}</span>
</div>
</div>
<ng-container *ngFor="let event of client.appointments">
<div *ngIf="(event.starts_at| date:'y-MM-dd') == (startofweek | date:'y-MM-dd')">
<ng-template #popContent>
<label>Notes</label>
<p>The id of client is {{ client.id }}</p>
<p>Event identifier {{ event.id }}</p>
</ng-template>
<button type="button" class="btn btn-outline-secondary" placement="bottom"
[ngbPopover]="popContent" popoverTitle="Popover on bottom" >
Popover on bottom
</button>
</div>
</ng-container>
</div>
</ng-container>
添加为工件。
IResponse.OutputStream
答案 2 :(得分:2)
你所写的内容绝对正确,但你只是写错了地方
你已经在build.gradle(Project:project_name)中编写了代码
你只需要在build.gradle(Module:app)文件中编写代码,然后将.arr文件粘贴到项目lib文件夹中
即
储存库{
flatDir {
dirs'libs'
}
}
依赖性{
......其他代表...
编译(名称:'my-external-lib',分机:'aar')
}
答案 3 :(得分:1)
在您的settings.gradle中,您应该包含此lib,例如:
include ':app', ':my-external-lib'
您可以将其编译为普通项目,例如:compile project(':my-external-lib')
您的my-external-lib
build.gradle也应该像:
configurations.maybeCreate("default")
artifacts.add("default", file('my-external-lib.aar'))
答案 4 :(得分:0)
我成功地将第3方.aar
文件包含到android react native模块中。
请查看我对这个问题的回答:How to include AAR in React Native Android build?
答案 5 :(得分:0)
尝试了很久之后,我终于明白了 那里应该怎么做:
添加
存储库{ flatDir { dirs'libs' } }
进入project:grindle(不是module.grindle) 和
答案 6 :(得分:0)
我正在尝试在本机模块中使用第三方软件
在reactnativeModule / android / libs中添加aar文件
添加
allprojects { 储存库{ flatDir { dirs:“ libs” } } } 在reactnativeModule / android / build.grindle的build.gradle中
添加依赖项
dependencies { implementation "com.facebook.react:react-native:${safeExtGet('reactnativeVersion', '+')}" of reactnativeModule/android/build.grindle