0

I want to add *.so library to my existing project. But the *.so file isn't found. Android Studio colored the data brown.

I added the Files like this:
|--app:
|--|--src:
|--|--|--main
|--|--|--|--jniLibs
|--|--|--|--|--armeabi
|--|--|--|--|--|--.so Files
|--|--|--|--|--armeabi
|--|--|--|--|--|--.so Files
|--|--|--|--|--x86
|--|--|--|--|--|--.so Files

build gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"

    defaultConfig {
        applicationId "com.xxx.xxxx"
        minSdkVersion 19
        targetSdkVersion 21
        versionCode 1
        versionName "1"
        multiDexEnabled true

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dexOptions {
        incremental true
        javaMaxHeapSize "5g"
    }
    repositories {
        maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases' }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar','.so'])

    compile 'me.dm7.barcodescanner:zbar:1.9'
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:design:25.1.0'
    compile 'com.qozix:tileview:2.2.6'
    compile 'com.google.android.gms:play-services:10.0.1'
    compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.2'
    testCompile 'junit:junit:4.12'
}

I get this error:

java.lang.UnsatisfiedLinkError: No implementation found for void jsqlite.Database.internal_init() (tried Java_jsqlite_Database_internal_1init and Java_jsqlite_Database_internal_1init__) at jsqlite.Database.internal_init(Native Method)

If I look into my unpacked APK, I see librarys for arm64-v8a, mips, mips64 and x84_64 where the libjsqlite.so is not available.

Cœur
  • 37,241
  • 25
  • 195
  • 267
Bukmop
  • 37
  • 5

1 Answers1

0

Update to address changes in question:
After your update to your question including the error you get and some googleing for jsqlite.Database.internal_init() I'd suggest you have a look at this question: java.lang.UnsatisfiedLinkError in jsqlite.Database.internal_init in Android Spatialite


Original answer:

This is how I have it in my app:

*.so files in src/main/libs (in thier armeabi, x86 folder each)

|--app:
|--|--src:
|--|--|--main
|--|--|--|--libs
|--|--|--|--|--armeabi
|--|--|--|--|--|--.so Files
|--|--|--|--|--x86
|--|--|--|--|--|--.so Files

and in my build.gradle

android {
     // other configuration

    sourceSets {
        main {
            jniLibs.srcDirs = ["src/main/libs"]
        }
    }
}
Cœur
  • 37,241
  • 25
  • 195
  • 267
Dodge
  • 8,047
  • 2
  • 30
  • 45