我需要做一件简单的事情:在项目中包含.so.这就是我现在拥有的:
# app/build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "my.app.123"
minSdkVersion 14
targetSdkVersion 22
versionCode 7113
versionName "7113"
}
productFlavors {
x86 {
ndk {
abiFilter "x86", "x86_64"
}
}
arm {
ndk {
abiFilters "armeabi-v7a", "armeabi"
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'io.pristine:libjingle:8871'
}
# build.gradle
all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
Run Code Online (Sandbox Code Playgroud)
我在src/src/main/jniLibs中有这些"so"文件:
/arm64-v8a/file1_so.so
/armeabi-v7a/file1_so.so
/x86/file1_so.so
/x86_64/file1_so.so
Run Code Online (Sandbox Code Playgroud)
但是,当我启动我的应用程序时,我收到一个错误,这意味着应用程序正在使用之前已嵌入其中的"旧" so文件.所以我不确定这些文件是否会被编译到结果apk中.
我应该怎么做才能将它们包含在输出apk中?
以下是我如何将我的预构建*.so引入我的应用程序,只需确保您*.so在src/main/libs文件夹中:
android {
...
sourceSets {
//noinspection GroovyAssignabilityCheck
main {
jni {
srcDirs = []
}
jniLibs {
srcDir 'src/main/libs'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4214 次 |
| 最近记录: |