I also had the same problem. As an experiment I built the library module as an application (using com.android.model.application), but leaving the build.gradle the same (as when building the library) and in this case the .so file was include in the built apk.
On Friday, 7 August 2015 17:00:26 UTC+1, Florent Brunet wrote: > > Hi! > > I am investigating the new support of the NDK with the official 1.3 > release of Android Studio. More precisely, I am trying to make a library > module which uses both Java code and native C code (interfaced with JNI). I > followed the explanations provided in this doc: > http://tools.android.com/tech-docs/new-build-system/gradle-experimental > (Unfortunately, it doesn't say much about libraries). So basically I have > an Android Studio project with two modules: > - a main application (which uses com.android.model.application plugin) > - a library module (which uses com.android.model.library plugin) > (The main application does not have any native C code, only the library > module has.) > > Here are the problems I've got: > > *First case: I put all the NDK stuff in the build.gradle file of the > library module.* > - The library seems to compile fine (Java and native parts -> the .so > files are present in the intermediate outputs) > - An AAR file is built but it does not contain the .so files > - The whole project does not compile: it stops on the > compileDebugJavaWithJavac task of the main app module complaining that it > cannot find the symbols defined in the library module. > > *Second case: I remove all the NDK stuff from the build.gradle file of the > library module.* > That's silly considering what my final goal is, I did that just for > testing purposes. > In this case, the compilation is successful: When the main app module is > compiled, the symbols defined in the library module are properly found (-> > from what I deduce that the dependencies configuration in the gradle files > should be OK...) > The generated APK runs properly on the device (as long as the native code > from the library module is not used of course) > > I spent a lot of time trying to make that work without any success... It's > definitely not impossible that I'm doing something wrong but I've got the > feeling that there is something buggy and/or missing in the > gradle-experimental 0.2.0 plugin. > > The full source code of the minimal project I used to test the creation of > an AAR library containing native code is here: > https://gitlab.com/FlorentBrunet/trials-gradleexpe-lib-jni/tree/master > > And here are my build.gradle files: > *- for the main app module:* > > apply plugin: 'com.android.model.application' > > model { > android { > compileSdkVersion = 22 > buildToolsVersion = "22.0.1" > > defaultConfig.with { > applicationId = "com.ubleam.trialswithlib" > minSdkVersion.apiLevel = 11 > targetSdkVersion.apiLevel = 22 > versionCode = 1 > versionName = "1.0" > } > } > > android.buildTypes { > release { > minifyEnabled = false > proguardFiles += file('proguard-rules.pro') > } > } > } > > dependencies { > compile fileTree(dir: 'libs', include: ['*.jar']) > compile 'com.android.support:appcompat-v7:22.2.1' > compile project(':mylibrary') > } > > > *- for the library module:* > > apply plugin: 'com.android.model.library' > > model { > android { > compileSdkVersion = 22 > buildToolsVersion = "22.0.1" > > defaultConfig.with { > applicationId = "com.ubleam.mylibrary" > minSdkVersion.apiLevel = 11 > targetSdkVersion.apiLevel = 22 > versionCode = 1 > versionName = "1.0" > } > } > > android.ndk { > moduleName = "dummylib" > } > > android.buildTypes { > release { > minifyEnabled = false > proguardFiles += file('proguard-rules.pro') > } > } > > android.productFlavors { > // for detailed abiFilter descriptions, refer to "Supported ABIs" @ > // https://developer.android.com/ndk/guides/abis.html#sa > create("arm") { > ndk.abiFilters += "armeabi" > } > create("arm7") { > ndk.abiFilters += "armeabi-v7a" > } > create("arm8") { > ndk.abiFilters += "arm64-v8a" > } > create("x86") { > ndk.abiFilters += "x86" > } > create("x86-64") { > ndk.abiFilters += "x86_64" > } > create("mips") { > ndk.abiFilters += "mips" > } > create("mips-64") { > ndk.abiFilters += "mips64" > } > // To include all cpu architectures, leaves abiFilters empty > create("all") > } > } > > dependencies { > compile fileTree(dir: 'libs', include: ['*.jar']) > compile 'com.android.support:appcompat-v7:22.2.1' > } > > > Really hope that this could help improving the Android tools because, > except for these few problems, Android Studio 1.3 and the integration of > the NDK is amazing! > -- You received this message because you are subscribed to the Google Groups "adt-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
