Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio将外部本机构建库从多个ABI复制到JNILIB_Android_Android Studio_Gradle_Cmake - Fatal编程技术网

Android Studio将外部本机构建库从多个ABI复制到JNILIB

Android Studio将外部本机构建库从多个ABI复制到JNILIB,android,android-studio,gradle,cmake,Android,Android Studio,Gradle,Cmake,我正在使用多个ABIs armeabi-v7a和带有Android Studio的x86构建外部本机构建库。问题是,当我构建项目时,库位于以下文件夹中: App/.externalNativeBuild/cmake/debug/armeabi-v7a/libs/armeabi-v7a/libApp.so App/.externalNativeBuild/cmake/debug/x86/libs/x86/libApp.so 为了在设备上正确找到它们,它们应该位于这些位置的内部: App/src/

我正在使用多个ABIs armeabi-v7a和带有Android Studio的x86构建外部本机构建库。问题是,当我构建项目时,库位于以下文件夹中:

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
有没有一种方法可以直接生成或构建到jniLibs中?目前我已经手工完成了符号链接,但我希望有一种自动化的方式来处理不同的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'
    }
}
使用

使用

sourceSets.main {
     jni.srcDirs = []
     jniLibs.srcDirs 'src/main/jniLibs'
}