有没有办法在Android清单中指定处理器架构要求?

问题描述 投票:0回答:3

我在 Android 项目中使用编译为armeabi-v7 的本机库。我的项目以 Android SDK 8 为目标。当我尝试在拔掉手机电源的情况下运行它时,自动定位会选择 Android 2.2 (armeabi) 虚拟设备而不是 4.03 (armeabi-v7) 并尝试在该设备上安装它,但这会抛出异常一个

Failed to install apk  on device 'emulator!
错误。

我找不到指定所需处理器架构的方法,考虑到您可以使用

<uses-configuration>
指定 Android SDK 版本、硬件要求(如硬件键盘)、更多硬件要求,甚至使用
<uses-feature>
指定 OpenGL 版本,这似乎很奇怪AndroidManifest.xml。

有办法指定吗?

android android-ndk android-manifest
3个回答
0
投票

不,没有办法做到这一点,这很奇怪,我同意。有一种指定架构的方法(在 Application.mk 中设置 APP_ABI :=armeabi-v7a),但这仅在构建本机库时考虑,而不是在选择适当的模拟器时考虑。


0
投票

但请注意,当您将应用程序发布到 Google Play 时,目标架构将被视为市场过滤器,您可以在开发控制台上看到它们。


0
投票

可以在构建gradle文件中设置:

https://developer.android.com/games/optimize/64-bit#android-studio-gradle

// Your app's build.gradle

android {
   ...
   defaultConfig {
       ...
       ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'

同一件事的替代品: https://developer.android.com/ndk/guides/abis#gc

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
        }
    }
}

您还可以将调试和发布中所需的内容放入“src/debug/jniLibs”和“src/release/jniLibs”文件夹中,如此处所示用于不同目的:

https://blog.dipien.com/stop-generate-the-buildconfig-on-your-android-modules-7d82dd7f20f1

© www.soinside.com 2019 - 2024. All rights reserved.