ANDROID NDK architecture du projet
Bonjour,
J'ai un projet sous eclipse, il fonctionne parfaitement cependant j'aimerai le faire migré sur Android Studio car eclipse :weird::aie: vous m'avez compris.
Ce projet est composé une librairie codé en C.
sous eclipse le projet avait cette architecture :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
mon projet
-> src dossier
-> jni dossier
-> dossierDifferenteClass en c contenant des .h et des .m
-> Android.mk
-> libs
-> ameabi dossier
-> lib.so
-> android-support.jar
-> src |
sous Android Studio mon projet à cette architecture :
Code:
1 2 3 4 5 6 7 8
|
src -> main
-> java dossier
-> jniLib dossier
-> armeabi dossier je sais pas où le mettre dans un dossier lib standard Android studio ou il est au bonne endroit ? :aie:
-> lib.so
-> dossierDifferenteClass en c contenant des .h et des .m
-> Android.mk |
mon gradle :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.8.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
buildTypes.debug.jniDebugBuild true
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
arm {
ndk {
abiFilter "armeabi-v7a"
}
}
mips {
ndk {
abiFilter "mips"
}
}
}
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
pkgTask.jniFolders = [new File(buildDir, 'lib')]
}
}
dependencies {
compile 'com.android.support:support-v4:19.0.0'
compile 'com.android.support:appcompat-v7:19.0.0'
} |
J'ai regardé le tutoriel sur developpez.com ça semble être un projet simple donc aucune complication comme ici.
Mon projet compile bien cependant au chargement de la librairie ça plante avec ce message :
Code:
1 2 3 4 5
|
java.lang.UnsatisfiedLinkError: Couldn't load maLib from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.ax.audio_record-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ax.audio_record-2, /vendor/lib, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.System.loadLibrary(System.java:526)
at com.ax.audio_record.MaClass.<clinit>(MaClass.java:24) |
code qu'il exécute lorsque ça plante :
Code:
1 2
|
System.loadLibrary("maLib"); |
rappel ce projet fonctionne parfaitement sur eclipse...
Si vous aurez une solution je suis preneur :)
merci d'avance :)
Cordialement,