如何在build.gradle中为android应用程序指定受支持的体系结构?
我的Android应用程序只支持arm64-v8a和armeabi-v7a。但是,由于其中一个依赖关系,我在apk的lib文件夹中看到以下内容:如何在build.gradle中为android应用程序指定受支持的体系结构?,android,android-studio,gradle,architecture,Android,Android Studio,Gradle,Architecture,我的Android应用程序只支持arm64-v8a和armeabi-v7a。但是,由于其中一个依赖关系,我在apk的lib文件夹中看到以下内容: arm64-v8a armeabi armeabi-v7a mips x86 x86_64 这是我的 build.gradle: buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies
arm64-v8a
armeabi
armeabi-v7a
mips
x86
x86_64
这是我的
build.gradle:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
defaultConfig {
applicationId "com.mycompany.myapp"
minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
versionCode Integer.parseInt(project.VERSION_CODE)
versionName project.VERSION_NAME
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
buildTypes {
release {
minifyEnabled true
shrinkResources true // https://developer.android.com/topic/performance/reduce-apk-size.html
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.android.support:design:24.0.0'
compile 'com.android.support:support-v4:24.0.0'
}
// Must follow the above play-services compile directives
apply plugin: 'com.google.gms.google-services'
如何使用Android Studio在build.gradle中指定受支持的体系结构?将其添加到
build.gradle中的构建类型中
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
要添加更多细节,您有两个选项:
1.在app build.gradle文件中,指定buildType的过滤器:
buildTypes {
debug {
ndk {
abiFilters "x86", "armeabi-v7a", "armeabi"
//abiFilters ABI_FILTERS
}
}
}
在gradle.settings文件中指定过滤器,并在app build.gradle中为生成类型引用它们:
gradle.settings:
ABI_FILTERS=armeabi-v7a;x86
app build.gradle:
buildTypes{
ndk {
abiFilters = []
abiFilters.addAll(ABI_FILTERS.split(';').collect{it as String})
}
}
你怎么知道这些东西的?关于这些神奇单词的文档在哪里?请修复ndk{
和abiFilters=[]上的错误缩进
行。这非常令人困惑。对于任何想知道的人来说:这必须进入app/build.gradle
中的defaultConfig
部分,正如这里所记录的:这同样有效:ndkConfig.abiFilters“armeabi-v7a”、“arm64-v8a”