Android studio 如何在没有.mk文件的Android Studion中强制gradle生成.a文件?

Android studio 如何在没有.mk文件的Android Studion中强制gradle生成.a文件?,android-studio,gradle,android-ndk,static-libraries,static-linking,Android Studio,Gradle,Android Ndk,Static Libraries,Static Linking,这个项目是在安卓工作室制作的。 它是通过NDK实现的Java+C。 Android Studio正在生成*.so文件。 如何将其更改为*.a文件 .所以文件是由gradle NDK制作的。(不带.mk文件) gradle中是否有请求静态库(.a文件)的方法/标志? (我需要分享这一点。a而不是。所以) 渐变文件: apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion '19.1' defaultConfi

这个项目是在安卓工作室制作的。 它是通过NDK实现的Java+C。 Android Studio正在生成*.so文件。 如何将其更改为*.a文件

.所以文件是由gradle NDK制作的。(不带.mk文件)

gradle中是否有请求静态库(.a文件)的方法/标志? (我需要分享这一点。a而不是。所以)

渐变文件:

apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion '19.1'
defaultConfig {
    minSdkVersion 10
    targetSdkVersion 19
    versionCode 1
    versionName '1.0'

    ndk
    {
        moduleName "mylib"
        ldLibs  "m", "log", "android", "jnigraphics"
    }
}
// This actual the app version code. Our given range is [0, 99999]
defaultConfig.versionCode = 3

// 2 dimensions of flavors. API is more important than ABI.
flavorDimensions "abi"

productFlavors {
    x86 {
        dimension "abi"
        ndk {
            abiFilter "x86"
        }
        // this is the flavor part of the version code.
        // It must be higher than the arm one for devices supporting
        // both, as x86 is preferred.
        versionCode = 3
    }
    arm {
        dimension "abi"
        ndk {
            abiFilter "armeabi-v7a"
        }
        versionCode = 2
    }
    mips {
        dimension "abi"
        ndk {
            abiFilter "mips"
        }
        versionCode = 1
    }
    fat {
        dimension "abi"
        // fat binary, lowest version code to be
        // the last option
        versionCode = 0
    }
}

// make per-variant version code
applicationVariants.all { variant ->
    // get the version code of each flavor
    def abiVersion = variant.productFlavors.get(0).versionCode

    // set the composite code
    variant.mergedFlavor.versionCode = abiVersion * 100000 + defaultConfig.versionCode
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
}

dependencies {
compile 'com.android.support:appcompat-v7:19.+'
compile fileTree(include: ['*.jar'], dir: 'libs')    
}

不,这是不可能的。但请解释一下你想解决什么问题?添加Android.mk文件有什么问题?您甚至可以动态地从build.gradle生成这样的文件。我尝试过添加它。它不起作用。我用的是自动生成的Android.mk。我在gradle中添加了一行:“sourceSets.main.jni.srcDirs=[]”。并添加了我必须自己制作的Aplication.mk(它不是自动生成的)。现在应用程序在LoadLibrary上崩溃。Application.mk:APP\u OPTIM:=发布APP\u ABI:=所有APP\u ABI:=所有APP\u STL:=stlport\u静态APP\u平台:=android-19 APP\u构建脚本:=makefiles/android.mk“现在APP在LoadLibrary上崩溃”-这是意料之中的!JNI无法使用静态库。无论包含$(),它都会崩溃。在这两种情况下,应用程序都不会编译C代码。(生成文件夹中没有.so/.a文件)。我想这与ndk BuildThank有关。我设法做到了。我还查看了实验插件,发现它有android.sources.main.jni.dependentials{linkage=“static”}