Flutter - 如何解决 appbudle 中的问题?

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

我有适用于 Android 的 Flutter 应用程序(使用网络)。该应用程序在调试模式下工作。我创建 appbundle - 将控制台下载到 Google,然后下载通用 apk 文件(适用于所有平台)。但是当我从商店安装应用程序时(即针对特定设备-特定平台),应用程序的运行出现问题。 我设法在计算机上本地重现了这个问题:

  • 我创建 appbundle
  • 我将从 appbundle(使用 bundletool)创建一组 apks
  • 然后我在手机上安装 apk(使用 bundletool)——同样的问题

看来问题也跟abi有关。这是我来自 build.gradle 的代码:

buildTypes {
        release {
            minifyEnabled false
            zipAlignEnabled false
            shrinkResources false
            signingConfig signingConfigs.release
            ndk.abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
        }
        debug {
            minifyEnabled false
            zipAlignEnabled false
            shrinkResources false
            signingConfig signingConfigs.release
            ndk.abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
        }
    }
    splits {
        abi {
            enable true //enables the ABIs split mechanism
            reset() //reset the list of ABIs to be included to an empty string
            include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
            universalApk true
        }
    }
..........

project.ext.versionCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4]

android.applicationVariants.all { variant ->
    variant.outputs.each { output ->
        output.outputFileName = "myapp_" + variant.versionName + "_" + output.getFilter(com.android.build.OutputFile.ABI) + ".apk"
        output.versionCodeOverride =
                project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) *
                        1000000 + android.defaultConfig.versionCode
    }
}

调试和发布的配置几乎相同。但是当我在调试中运行应用程序时。

我怎样才能明白错误的原因是什么? 我怎么能在调试模式下加入发布 apk - 但它可能是不可能的。

任何建议-我将不胜感激

android flutter android-studio abi
3个回答
0
投票

考虑删除 x86 因为 flutter 不支持它。它将正常工作。

放这个:

release {
            minifyEnabled false
            zipAlignEnabled false
            shrinkResources false
            signingConfig signingConfigs.release
            ndk.abiFilters 'x86_64', 'armeabi-v7a', 'arm64-v8a'
        }

而不是这个:

release {
            minifyEnabled false
            zipAlignEnabled false
            shrinkResources false
            signingConfig signingConfigs.release
            ndk.abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
        }

0
投票

我解决了这个问题 - 将它添加到 gradle.properties

  android.bundle.enableUncompressedNativeLibs=false

0
投票

删除了 ndk.abiFilters 'x86'、'x86_64'、'armeabi-v7a'、'arm64-v8a'

自动显示google play store 和 apk 安装

buildTypes { 发布 { debuggable fale /// 上传apk false minifyEnabled 假 收缩资源 false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig 签名配置.release } }

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