Ok, thanks for the information. -- *Stéphane SAFFRÉ*
2015-08-17 21:21 GMT+02:00 Xavier Ducrohet <[email protected]>: > This is not yet supported by the plugin. > > On Fri, Aug 7, 2015 at 9:33 AM, Ignas Brašiškis <[email protected] > > wrote: > >> Same problem here, I am strugling to link third party so's. >> >> In Gradle 2.4 normal way to build against native so's was simple: >> In build sets add jniLibs in sourceset – >> >> sourceSets { >> main { >> jniLibs.srcDirs = ['jniLibs'] >> } >> } >> >> As I understand sourceSets here are replaced by android.sources >> directive. I tried this: >> >> android.sources { >> main { >> java{ >> source{ >> srcDir 'src' >> } >> } >> jniLibs{ >> source{ >> srcDir 'jniLibs' >> } >> } >> } >> } >> >> >> Gradle runs well however it still does not link: in runtime I get link >> error. Any ideas how to solve it? >> >> 2015 m. rugpjūtis 7 d., penktadienis 19:00:38 UTC+3, Stéphane Saffré rašė: >>> >>> Hello, >>> >>> I am struggling to build a simple native library depending on another >>> native third-party shared library (turbojpeg). This native library is >>> basically a wrapper of turbojpeg library. >>> >>> I have followed the documentation I have found here: >>> http://tools.android.com/tech-docs/android-ndk-preview >>> http://tools.android.com/tech-docs/new-build-system/gradle-experimental >>> >>> However I am unable to make Android Studio find the third-party library. >>> Here is the project setup >>> >>> Project build.gradle: >>> >>> // Top-level build file where you can add configuration options common to >>> all sub-projects/modules. >>> buildscript { >>> repositories { >>> jcenter() >>> } >>> dependencies { >>> classpath 'com.android.tools.build:gradle-experimental:0.2.0' >>> } >>> } >>> >>> allprojects { >>> repositories { >>> jcenter() >>> } >>> } >>> >>> >>> >>> app module build.gradle: >>> >>> apply plugin: 'com.android.model.application' >>> model { >>> android { >>> compileSdkVersion = 21 >>> buildToolsVersion = "22.0.1" >>> >>> defaultConfig.with { >>> applicationId = "com.stephane.turbojpegplugin" >>> minSdkVersion.apiLevel = 19 >>> targetSdkVersion.apiLevel = 19 >>> } >>> } >>> /* >>> * native build settings >>> */ >>> android.ndk { >>> moduleName = "TurboJpegPlugin" >>> stl = "stlport_static" >>> ldLibs = [ "turbojpeg" ] >>> /* >>> * Other ndk flags configurable here are >>> * cppFlags += "-fno-rtti" >>> * cppFlags += "-fno-exceptions" >>> * ldLibs = ["android", "log"] >>> * stl = "system" >>> */ >>> } >>> android.buildTypes { >>> release { >>> minifyEnabled = false >>> proguardFiles += file('proguard-rules.txt') >>> } >>> } >>> android.productFlavors { >>> // for detailed abiFilter descriptions, refer to "Supported ABIs" @ >>> // https://developer.android.com/ndk/guides/abis.html#sa >>> create("arm7") { >>> ndk.abiFilters += "armeabi-v7a" >>> } >>> } >>> } >>> >>> >>> Gradle builds sucessfully with these files however at project build here >>> is the output: >>> >>> Information:Gradle tasks [clean, :app:compileArm7DebugSources, :app: >>> compileArm7DebugAndroidTestSources] >>> :app:clean >>> :app:copyArmeabi-v7aDebugTurboJpegPluginSharedLibraryGdbServer >>> :app:createArmeabi-v7aDebugTurboJpegPluginSharedLibraryGdbsetup >>> :app:compileArmeabi- >>> v7aDebugTurboJpegPluginSharedLibraryTurboJpegPluginMainCpp >>> :app:linkArmeabi-v7aDebugTurboJpegPluginSharedLibrary >>> D:\Dev\android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\ >>> windows-x86_64\arm-linux-androideabi\bin\ld.exe >>> Error:error: cannot find -lturbojpeg >>> D:\Dev\projects\android\TurboJpegPlugin\app\src\main\jni\TurboJpegPlugin >>> .cpp >>> Error:(9) undefined reference to 'tjInitDecompress' >>> Error:(10) undefined reference to 'tjDecompressHeader2' >>> Error:(13) undefined reference to 'tjDecompress2' >>> Error:(14) undefined reference to 'tjDestroy' >>> Error:error: ld returned 1 exit status >>> Error:Execution failed for task >>> ':app:linkArmeabi-v7aDebugTurboJpegPluginSharedLibrary'. >>> > A build operation failed. >>> Linker failed while linking libTurboJpegPlugin.so. >>> See the complete log at: file: >>> ///D:/Dev/projects/android/TurboJpegPlugin/app/build/tmp/linkArmeabi-v7aDebugTurboJpegPluginSharedLibrary/output.txt >>> Information:BUILD FAILED >>> Information:Total time: 0.763 secs >>> Information:7 errors >>> Information:0 warnings >>> Information:See complete output in console >>> >>> >>> The turbojpeg library is in the jniLibs folder like this: >>> >>> >>> <https://lh3.googleusercontent.com/-yBTIB9DYN1E/VcTUDr-LKvI/AAAAAAAABb0/SVPc191qycM/s1600/2015-08-07_17h51_24.png> >>> >>> Following older articles/documentation, the jniLibs folder is where the >>> native shared libraries should be put to Android Studio automatically find >>> them but it seems it not the case anymore. Did I miss something? >>> >>> Any help would be greatly appreciated. >>> >>> Thanks! >>> >> -- >> 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. >> > > > > -- > Xavier Ducrohet > Android SDK Tech Lead > Google Inc. > http://developer.android.com | http://tools.android.com > > Please do not send me questions directly. Thanks! > > -- > You received this message because you are subscribed to a topic in the > Google Groups "adt-dev" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/adt-dev/9bWWbfty3gA/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- 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.
