System.loadLibrary in Android Studio

Ich bin gerade dabei, eine Bibliothek laden in meinem Projekt, das ich eine bestimmte Lizenz die ich verwende. Jedoch bei der Ausführung von es gibt nur einen Fehler im system.loadLibrary.

Bin ich mit Android Studio und ich habe die Bibliothek gelegt, die in meinem Ordner libs und ich bereits Hinzugefügt, es in meinen Abhängigkeiten.

Code :

@Override
public void onCreate() {
    Log.v( TAG, "onCreate()" );
    super.onCreate();

    //Gives the error.
    System.loadLibrary( "MobileImagingEngine" );
    try {
        Log.v( TAG, "MILicenser.getVersionInfo(): " + MILicenser.getVersionInfo() );
        final InputStream licenseStream = getAssets().open( "thelicense.License" );
        MILicenser.setLicense( licenseStream, "Android_ID" );
        Log.v( TAG, "MILicenser.setLicense() succeeded. " + MILicenser.getLicenseInfo() );
    } catch( final Exception exception ) {
        Log.e( TAG, "MILicenser.setLicense() failed", exception );
    }
    MIContext.createInstance();
}

Log :

Process: docspro.nl.docsproscanapp, PID: 10348
java.lang.UnsatisfiedLinkError: Couldn't load MobileImagingEngine from loader dalvik.system.PathClassLoader[dexPath=/data/app/docspro.nl.docsproscanapp-8.apk,libraryPath=/data/app-lib/docspro.nl.docsproscanapp-8]: findLibrary returned null
        at java.lang.Runtime.loadLibrary(Runtime.java:358)
        at java.lang.System.loadLibrary(System.java:526)
        at docspro.nl.docsproscanapp.MIApplication.onCreate(MIApplication.java:24)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4581)
        at android.app.ActivityThread.access$1600(ActivityThread.java:161)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1325)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.app.ActivityThread.main(ActivityThread.java:5356)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
        at dalvik.system.NativeStart.main(Native Method)

Gradle-Datei (Versucht eine Lösung vom stack):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "project.name"
    minSdkVersion 14
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile files('lib/armeabi-v7a/libMobileImagingEngine.jar')
    compile files('libs/ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar')
    compile files('libs/MobileImagingEngine.jar')
    compile files('libs/MobileImagingEngine_Doc.jar')
}

task copyNativeLibs(type: Copy) {
    from(new File('libs')) { include '**' }
    into new File(buildDir, 'native-libs')
}

tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyNativeLibs }

clean.dependsOn 'cleanCopyNativeLibs'

tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniFolders = new HashSet<File>()
    pkgTask.jniFolders.add(new File(buildDir, 'native-libs'))
}
  • Öffnen Sie die apk als zip-Datei und sehen, ob es eine entsprechende libMobileImagingEngine.so eine Architektur entsprechende Verzeichnis davon. Wenn nicht, herauszufinden, warum nicht. Bauen Sie diese aus der Quelle? Ist es geliefert vorgefertigten von einem Händler?
  • Es ist eine Bibliothek, die vorgefertigte, ist es gegeben, beim Kauf eines bestimmten Produkts. Und ist es nicht enthalten .tun Datei.
  • .also (das original, mein Kommentar litt an einem Android-Tastatur)
  • posten Sie Ihre gradle-Datei
  • Gradle Hinzugefügt. Plus gibt es keine .so Datei
  • Wenn es keine .also die Datei in der apk Sie brauchen, um herauszufinden, wo es war, soll kommen. Wenn Sie nicht haben eine .also irgendwo müssen Sie entweder bauen Sie es aus Quell-oder hast du eine unvollständige übergabe von Ihrem Lieferanten.
  • Gibt es irgendeine Abhilfe? Wie das entpacken .Glas und versuchen Sie, es so ein Modul oder so etwas? Was ich nicht verstehe ist, dass ich Sie mit es als eine normale Bibliothek, in meinen Abhängigkeiten, aber wenn ich versuche zu laden, es will einfach nicht laden. Aber in Eclipse ist es verwendet, um zu laden. So meine Ahnung ist, dass der Pfad könnte falsch sein?

Schreibe einen Kommentar