我刚刚看到Python for Android (p4a)刚刚引入了对 AAB 文件的支持。考虑到从 2021 年 8 月开始,新应用程序需要通过 Google Play 上的 Android App Bundle 发布,这对于任何处理 Android 应用程序的 Python 开发人员来说都是至关重要的补充。
由于我目前通过 Docker 使用 Buildozer,我想知道使它生成 .aab 而不是(或沿着)传统 .apk 的步骤有哪些
为了清楚起见,我使用以下方法从容器内部运行 Buildozer(使用适用于 Windows 的 Docker)来生成 .apk 文件:
docker run --interactive --tty --rm --volume "<full_path_to_project_dir>":/home/user/hostcwd kivy/buildozer -v android debug
Run Code Online (Sandbox Code Playgroud)
我已经看到有一个临时解决方法,但它涉及使用 Android Studio,我不使用并且希望避免使用。而且,它指的是虚拟机用户,但我不确定这是否也适用于 Docker 用户。
我有一个 apache cordova 项目,但我想构建一个 aab 文件而不是 apk,请帮助
在 apache cordova 中,我使用此命令 cordova run android 创建一个 apk,但我想要一个 aab 文件
我有一个 CI/CD,正在将 AAB 版本发布到 Firebase。它从那里分发用于质量检查。
另外,我已将 Firebase 中的应用程序与 Google Play Console 中的应用程序链接起来,如下所示:
当我点击“分发 AAB”时,我进入“应用程序分发”,但发现无法将新版本推送到 Play 管理中心。
在 Play Console 上,它似乎没有出现在可用工件列表中,至少在几个小时内是这样。
所以问题是:
我应该以某种方式将 AAB 从 Firebase Distribution 推送到 Google Play Console,还是会自动发生(如果它们已链接),或者唯一的选择是手动将新的 AAB 上传到 Google Play Console。
失败:构建失败并出现异常。
执行 com.android.build.gradle.internal.tasks.FinalizeBundleTask$BundleToolRunnable java.lang.NullPointerException 时发生失败(无错误消息)
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
在https://help.gradle.org获取更多帮助
在 24 秒内构建失败运行 Gradle 任务“bundleRelease”...26.2s Gradle 任务bundleRelease 失败,退出代码为 1
Build.gradle 文件:-
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) { …Run Code Online (Sandbox Code Playgroud) 我在 Google Play Sigin 上陷入了这个问题。我在这两家公司之间,其中一家正在构建一个应用程序并将 apk/aab 发送给我,我必须在另一家公司的 google play 商店中发布它。
问题是我必须将其作为新更新发布到现有应用程序,但他们忘记了该应用程序的密钥库,因此我为其创建了一个新的密钥库。但无论我做什么,我都无法让这个密钥库工作。
接下来我可以尝试什么?
我尝试过的事情:
android publish keystore google-play-console android-app-bundle
我知道在 Gradle 中生成拆分时有一个排除 ABI 的选项,如下所示:
android {
splits {
// Configures multiple APKs based on ABI.
abi {
// Enables building multiple APKs per ABI.
enable true
// By default all ABIs are included, so use reset() and include to specify that we only
// want APKs for x86 and x86_64.
// Resets the list of ABIs that Gradle should create APKs for to none.
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include "x86", …Run Code Online (Sandbox Code Playgroud) 我目前使用发布格式.aab在Google Play控制台上上传我的应用更新。我的问题是我无法找到一种方法来下载和安装从.aab生成的正确APK。
当我像许多人建议的那样从“管理版本”下载时,它会下载一个.aab。当我下载设备专用的APK时,它会给我三个APK。(在我的下载案例中,为base.apk,config.en.apk和config.xxhdpi.apk)。
基本APK可以安装但无法启动。其他2个APK甚至都无法解析。我怀疑这三个应该捆绑安装,但我不知道该怎么做。
如何安装这三个APK或下载我可以轻松安装的单个APK?
我正在尝试实现应用内更新 API,然后是in-app-update-api,在调试版本低于 Play 商店版本的应用时,AppUpdateInfo返回availableVersionCodeas0和updateAvailabilityas 1 (UPDATE_NOT_AVAILABLE),注意:我使用了相同的包名称 &运行构建的相同签名密钥
提前致谢!
android google-play google-play-services google-play-developer-api android-app-bundle
我不知道应该在哪里设置 google play 控制台中“应用内更新”功能的更新类型。
否则告诉我如何使用AppUpdateType.IMMEDIATE和AppUpdateType.FLEXIBLE?
android google-play-console android-app-bundle in-app-update
完全错误
java.lang.NoSuchMethodError: 没有静态方法 asAttributeSet(Lt/g/a/a;)Landroid/util/AttributeSet; 在类 Landroid/util/Xml 中;或其超类('android.util.Xml' 的声明出现在 /system/framework/framework.jar!classes2.dex 中)
我已经在 Play 商店上传了 appbundle,每当我在我的设备中从它下载应用程序时,应用程序都会崩溃,日志如下......(日志是从所有 RedMI 设备 android os 9、MIUI 11 和 10 收集的)
java.lang.NoSuchMethodError: No static method asAttributeSet(Lt/g/a/a;)Landroid/util/AttributeSet; in class Landroid/util/Xml; or its super classes (declaration of 'android.util.Xml' appears in /system/framework/framework.jar!classes2.dex)
at i.b.k.h.g.inflate(Unknown Source:21)
at xxx.yyyyyy.zzzzzz.qqqqqq.cccc.view.HomeActivity.onCreateOptionsMenu(Unknown Source:12)
at android.app.Activity.onCreatePanelMenu(Activity.java:3456)
at android.support.v4.app.i.onCreatePanelMenu(Unknown Source:2)
at i.b.k.h.i.onCreatePanelMenu(Unknown Source:2)
at android.support.v7.app.h$k.onCreatePanelMenu(Unknown Source:8)
at i.b.k.h.i.onCreatePanelMenu(Unknown Source:2)
at android.support.v7.app.l.p(Unknown Source:25)
at android.support.v7.app.l$a.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:6651)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) …Run Code Online (Sandbox Code Playgroud)