![](/img/trans.png)
[英]Load 2 files .so native lib from 2 different projects in android
[英]Android M API 23 error to load lib .so files
你好我們在我的應用程序中有aac解碼器
當我在API級別22時它工作得很好..
但當我使用API級別23 ..我的應用程序崩潰,並給我一個錯誤無法lib文件
java.lang.UnsatisfiedLinkError: dlopen failed:
我搜索了很多頁面,但沒有幫助發現..問題只是在最新版本的Android ..應用程序在舊版本的Android工作得很好..
這是我的libs
aacdecoder-android-libs-0.8.zip
| --- src | --- main | --- jniLibs
> aacdecoder-android-0.8.jar
> armeabi
> libaacdecoder.so
> armeabi-v7a
> libaacdecoder.so
> mips
> libaacdecoder.so
> x86
> libaacdecoder.so
我如何在最新版本的Android M中加載libs
我也試過了
System.loadLibrary("src/main/amn/armeabi/libaacdecoder.so");
System.loadLibrary("src/main/amn/armeabi-v7a/libaacdecoder.so");
System.loadLibrary("src/main/amn/mips/libaacdecoder.so");
System.loadLibrary("src/main/amn/x86/libaacdecoder.so");
System.loadLibrary("src/main/amn/aacdecoder-android-0.8.jar");
但沒有工作:(
提前謝謝..我在等
我已經為api修復了這個問題26所以:
1-你需要建立這個新的庫: https : //github.com/hichemcesar24/AACDecoder
2-你需要改變gradle我在這個代碼下面使用:
android {
compileSdkVersion 26
buildToolsVersion '26.0.1'
defaultConfig {
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "0.8"
group = 'com.spoledge.aacdecoder'
version = '0.8-SNAPSHOT'
ndk { stl "gnustl_static" }
}
sourceSets.main {
jniLibs.srcDir 'src/main/libs'
jni.srcDirs = []
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
task ndkBuild(type: Exec) {
// def ndkDir =plugins.getPlugin('com.android.library').sdkHandler.getNdkFolder()
def ndkDir = project.android.ndkDirectory.absolutePath
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
commandLine "$ndkDir/ndk-build.cmd", '-C', file('src/main/jni').absolutePath
} else {
commandLine "$ndkDir/ndk-build", '-C', file('src/main/jni').absolutePath
}
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
}
3-將build gradle的類路徑更改為:
classpath 'com.android.tools.build:gradle:2.2.2'
4-如果gradle有問題所以你需要刪除:
def ndkDir = project.android.ndkDirectory.absolutePath
並改變了這個:
def ndkDir =plugins.getPlugin('com.android.library').sdkHandler.getNdkFolder()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.