Ale*_*mes 34 android android-ndk android-gradle-plugin
项目结构:
应用项目 - >取决于图书馆项目
Library Project有一个用于编译的jni库的文件夹
jniLibs.srcDirs = ['libs']
Run Code Online (Sandbox Code Playgroud)
我已经尝试将以下内容添加到build.gradle的android元素中,根据示例应用程序https://android.googlesource.com/platform/tools/build/+/2e1f7810edd76d92cee8d3e06bc4dec0c288adea/tests/ndkSanAngeles/build.gradle但是android库项目不支持productFlavours,因此汇编失败,"找不到项目中参数[dghdhd]的方法productFlavors()"
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
arm {
ndk {
abiFilters "armeabi-v7a", "armeabi"
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法为Android库项目添加ndk支持?
Ale*_*mes 68
最后我不需要使用产品口味.
对于图书馆项目,我添加了以下内容:
android {
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
Run Code Online (Sandbox Code Playgroud)
libs文件夹里面有一个名为"armeabi-v7a"的文件夹,因为这是我唯一的目标.
ndk文件(.so)传播到使用android库项目的android项目中.
Mak*_*aks 12
新的android实验gradle插件的示例.
要求:
1)默认情况下,您可以简单地将所有共享本机库放在main/jniLibs文件夹中.
项目结构
根文件夹/ android项目
根文件夹/ android_project/app/src/main/jniLibs/x86
根文件夹/ android_project/app/src/main/jniLibs/armeabi-v7a
根文件夹/ android_project/app/src/main/jniLibs/...
Gradle会自动将它们上传到设备.
然后,您可以在应用程序中加载库.
static {
System.loadLibrary("mylibrary");
}
Run Code Online (Sandbox Code Playgroud)
2)您还可以将所有共享本机库放在自定义位置.
带有bin/android/Debug目录路径的示例.
在这种情况下,您应该在build.gradle文件中手动设置库位置.
项目结构
根文件夹/ android项目
根文件夹/ bin/android/Debug/jniLibs/x86
根文件夹/ bin/android/Debug/jniLibs/armeabi-v7a
根文件夹/ bin/android/Debug/jniLibs/...
根文件夹/ android_project/app/build.gradle
apply plugin: 'com.android.model.application'
model {
android {
sources {
main {
jni {
source {
srcDirs = []
}
}
jniLibs {
source {
srcDirs "/../../bin/android/Debug/jniLibs"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37739 次 |
| 最近记录: |