Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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 构建所有ABI,但仅打包一个子集_Android_Gradle_Android Ndk - Fatal编程技术网

Android 构建所有ABI,但仅打包一个子集

Android 构建所有ABI,但仅打包一个子集,android,gradle,android-ndk,Android,Gradle,Android Ndk,我正在尝试为我的项目构建所有ABI,但只想将其中的一个子集打包到我的应用程序中。例如,我想构建“x86”、“x86_64”、“armeabi-v7a”和“arm64-v8a”,但只构建包“x86”(例如) 阅读“specifyabis”部分下的文档(),似乎很可能使用他们提供的代码片段作为示例。然而,这似乎对我不起作用 我的代码片段如下 android { defaultConfig { ndk { abiFilters 'armeabi-v7a'

我正在尝试为我的项目构建所有ABI,但只想将其中的一个子集打包到我的应用程序中。例如,我想构建“x86”、“x86_64”、“armeabi-v7a”和“arm64-v8a”,但只构建包“x86”(例如)

阅读“specifyabis”部分下的文档(),似乎很可能使用他们提供的代码片段作为示例。然而,这似乎对我不起作用

我的代码片段如下

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a'
        }
        externalNativeBuild {
            cmake {
                abiFilters 'armeabi-v7a', 'x86'
            }
        }
    }
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
}
在上面的代码片段中,根据我对文档的理解,它应该同时构建armeabi-v7a和x86,但只在我的APK中打包armeabi-v7a。但这不起作用


我使用的是Android插件3.1.0和NDK 16.1.4479499

你要找的东西是由拆分控制的

splits {
    abi {
        enable true
        reset()
        include 'armeabi-v7a'
        universalApk false //don't generate an additional APK that contains all the ABIs
    }
}

您要查找的内容由拆分控制

splits {
    abi {
        enable true
        reset()
        include 'armeabi-v7a'
        universalApk false //don't generate an additional APK that contains all the ABIs
    }
}

谢谢你,亚历克斯。这不会创建多个APK吗?我希望用一个ABI创建一个APK,但要构建所有ABI。虽然你只需要一个ABI,但上面的设置就足够了。我不知道如何创建一个有两个ABI的APK,同时创建更多。谢谢Alex的帮助。我在原始问题中发布的代码在理论上应该是有效的,但由于某些原因,它不是:(我对你的回复投了赞成票,因为它非常有用,但我仍然想理解为什么示例代码不起作用。谢谢Alex。这不会创建多个APK吗?我希望创建一个只有一个ABI的APK,但构建所有ABI。虽然你只需要一个ABI,但上面的设置就足够了。我不知道如何使用创建APK。)两个ABI同时构建更多。感谢Alex的帮助。我在原始问题中发布的代码理论上应该可以工作,但由于某些原因,它不是:(我对您的回复投了赞成票,因为它非常有用,但我仍然想理解示例代码不起作用的原因。我相信您对的解释是错误的。如果您想打包(例如,x86和armeabi),但预构建了前一个列表,并且只希望Gradle构建armeabiI beli,那么将此列表定义两次可能会有所帮助eve,您对的解释不正确。如果您希望打包(例如x86和armeabi),但预构建了前者,并且只希望Gradle构建armeabi,那么将此列表定义两次可能会有所帮助