Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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
如何在build.gradle中为android应用程序指定受支持的体系结构?_Android_Android Studio_Gradle_Architecture - Fatal编程技术网

如何在build.gradle中为android应用程序指定受支持的体系结构?

如何在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

我的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 {
        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”