将APK上传到Play商店后,收到以下警告。我应该做出什么更改才能发布带有flutter sdk的apk版本以满足64位要求?
查看图片以查看警告消息。
答案 0 :(得分:5)
请他们更改了64-bit
体系结构的新策略。所以请把这段代码放在你的gradle中
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
例如
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.test.test"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
答案 1 :(得分:2)
您需要构建两个apk并将其一起上传。一个用于32位,另一个用于64位。
这对我来说很有效,我正在使用flutter v1.5.4-hotfix.2
首先运行flutter build apk --release
并上传apk文件
然后在pubspec.yml文件中增加版本和内部版本号并运行
flutter build apk --release --target-platform=android-arm64
上传此新apk并开始推出。
祝你好运
答案 2 :(得分:2)
对我有用的是
flutter build appbundle --release
上传appbundle文件
然后在pubspec.yml文件中增加版本和内部版本号并运行
flutter build appbundle --release --target-platform=android-arm64
还上传此新组合。
然后Play商店接受了我的放行
答案 3 :(得分:2)
现在,futter团队提供了一个更好的新解决方案。
您需要使用新的 flutter版本1.7.12 。 (我的设置)
Flutter 1.7.12-pre.40 • channel master • https://github.com/flutter/flutter.git
Framework • revision 3badcf51a4 (13 hours ago) • 2019-06-28 15:14:03 -0700
Engine • revision e96900df2f
Tools • Dart 2.4.0
然后,您可以使用此命令为x86和x64构建(单个)应用程序包。
flutter build appbundle
另外,您可以添加--release --target-platform android-arm,android-arm64
。但这可能会导致应用程序损坏...
答案 4 :(得分:1)
使用Flutter的最新主频道。
flutter build apk
会生成一个胖APK,其中包含对32位和64位的支持。
要分别创建32位和64位APK,请使用flutter build apk --split-per-abi
命令
答案 5 :(得分:1)
我终于能够通过将其添加到build.gradle中来解决此问题
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
splits {
abi {
include "armeabi-v7a", "arm64-v8a"
}
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "arm64-v8a":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
关于这一点,没有很多清晰的文档,我碰巧是通过搜寻互联网而碰到的。
答案 6 :(得分:0)
我也面临同样的警告,并从Google博客中找到了这篇文章:https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html不太详细,但概述了我们应遵循的步骤
答案 7 :(得分:0)
Flutter 1.5.4-hotfix.2 appbundle当前针对仅构建32位本机代码(flutter build appbundle -h
)的android-arm。要更改此运行,请运行flutter build appbundle --target-platform=android-arm64
来更改默认目标。
答案 8 :(得分:0)
我使用此代码构建了我的代码,但仍然出现错误。
flutter构建附件--target-platform = android-arm64
答案 9 :(得分:0)
如果您使用 Android Studio
在上传到Google Play时,只需转到构建-> Flutter->构建应用程序包,将其替换为APK
答案 10 :(得分:0)
将此行添加到您的android / app / build.gradle文件中
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86','x86_64'
}
答案 11 :(得分:-2)
通过此线程和此链接。人们都说过同样的话。但是,我不知道什么是颤动。它似乎是一个IDE或某种终端。我无法添加在Gamemaker Studio 2中制作的应用程序;我唯一可以修改的是android和SDK,JDK和NDK文件的版本。因此,我想就自己的工作提供一些建议或技巧,因为这是Google和Gamemaker的制造商YoYo Games的一个主要站点。任何帮助将不胜感激。
https://github.com/flutter/flutter/issues/32191
链接中的重复路线:
添加以下行应用程序级别build.gradle ndk.abiFilters'armeabi-v7a','arm64-v8a','x86','x86_64'
运行flutter build apk --release --target-platform = android-arm 上传32位元版本以播放商店 pubspec.yaml中的递增versionCode 运行flutter build apk --release --target-platform = android-arm64 上传64位版本以播放商店