2017-04-16 60 views
1

我使用Android Studio构建了带有多个ABI armeabi-v7a和x86的外部原生构建库。问题是,当我建立了项目库,在这些文件夹:Android Studio将外部原生构建库从多个ABI复制到jniLibs

App/.externalNativeBuild/cmake/debug/armeabi-v7a/libs/armeabi-v7a/libApp.so 
App/.externalNativeBuild/cmake/debug/x86/libs/x86/libApp.so 

,他们应该是在这些位置内,以正确的设备上找到:

App/src/main/jniLibs/armeabi-v7a/libApp.so 
App/src/main/jniLibs/x86/libApp.so 

有一种可以生成或直接构建到jniLib中的方法?目前我手工完成了符号链接,但是我希望有自动化的方式来处理不同的ABI和不同的配置。 这是我目前gradle这个脚本:

apply plugin: 'com.android.application' 
android { 
    compileSdkVersion 23 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "com.org.app" 
     minSdkVersion 19 
     targetSdkVersion 19 
     ndk { 
      abiFilters 'armeabi-v7a', 'x86' 
      stl = "c++_static" 
     } 
     externalNativeBuild { 
      cmake { 
       arguments "-DCMAKE_BUILD_TYPE=Release" 
      } 
     } 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt') 
     } 
    } 
    externalNativeBuild { 
     cmake { 
      path '../../../CMakeLists.txt' 
     } 
    } 
    sourceSets.main { 
     jni.srcDirs = [] 
     jniLibs.srcDir 'src/main/jniLibs' 
    } 
} 

回答

0

使用

sourceSets.main { 
    jni.srcDirs = [] 
    jniLibs.srcDirs 'src/main/jniLibs' 
} 
我已经使用
+1

,但它不工作。 – sabotage3d

相关问题