Android studio 如何在没有.mk文件的Android Studion中强制gradle生成.a文件?
这个项目是在安卓工作室制作的。 它是通过NDK实现的Java+C。 Android Studio正在生成*.so文件。 如何将其更改为*.a文件 .所以文件是由gradle NDK制作的。(不带.mk文件) gradle中是否有请求静态库(.a文件)的方法/标志? (我需要分享这一点。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
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”}