簡體   English   中英

Android M API 23加載lib .so文件時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM