【问题标题】:Android Native platform configurationAndroid 原生平台配置
【发布时间】:2019-03-15 11:45:57
【问题描述】:

[更新]

Flutter 只能支持 32 位或 64 位的发布 APK,但不能同时支持

在 Galaxy Note 3 上进行测试后,firebase testLabs 上的 API 级别 19 崩溃了。 我通过添加

解决了这个问题(至少现在)
release {
    ndk{
         abiFilters "armeabi-v7a"    // not working for "armeabi", "x86"  
       }
 }

然后我强制生成APK到arm如图:

flutter build apk --release --target-platform android-arm

它成功了!

Gradle 属性可以设置为 android-arm(default) 或 android-arm64 不能同时设置


[问题]

如何配置我的代码以在所有原生平台上运行,例如 “armeabi”、“armeabi-v7a”、“armeabi-v8a”、“x86”、“x86_64”、“mips” .. 和其他架构。 (需支持全平台)

这样做的原因是我想为 google play 中具有“Native platform = none”的现有应用程序上传更新版本,因此我的应用程序必须具有相同的平台依赖关系才能不丢失用户,而不仅仅是针对“armeabi” -v7a"

我在这里关注了https://developer.android.com/studio/build/configure-apk-splits 的 android 文档,如下所示:

splits {
    // Configures multiple APKs based on ABI.
    abi {
        enable true
        reset()
        include "armeabi", "armeabi-v7a", "armeabi-v8a", "x86","x86_64", "mips", "mips64"
        universalApk true
    }
}

但它无法构建 APK 并显示错误:
Gradle build failed to generate an Android package.
当我运行flutter build apk --release .. 有什么帮助吗?

【问题讨论】:

    标签: android groovy android-gradle-plugin flutter


    【解决方案1】:

    您的配置对于在使用 C++ 代码的典型 android 构建中生成多个 apk 工件是正确的,每个架构一个。然而,flutter 仍然无法为您定义的大多数架构构建。

    flutter build apk -h
    
    . . .
        --target-platform         [android-arm (default), android-arm64]
    

    明显缺少 x86 和 x86_64。

    出于实际目的,flutter 几乎涵盖了所有物理设备,因为现在已经有很长一段时间没有使用 x86 的新手机了,甚至在几年前它们也很少。它最大的缺点是我们无法在模拟器上运行生产版本。

    【讨论】:

      猜你喜欢
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多