问题标签 [android-app-bundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1314 浏览

android - 未找到动态功能中的活动(ClassNotFound)

完毕:

  1. 生成一个版本 a.abb
  2. 使用 bundletool 将 a.abb 转换为 a.apks。
  3. 将其部署到设备。

问题:

找不到动态功能中的活动。(但在调试中,没关系)

0 投票
1 回答
1736 浏览

android-studio - 生成签名包时出错,APT2 进程意外退出

我正在制作的应用程序最近完成了。所以我尝试创建一个签名的 Android App Bundle 来发布它。然而,在创建过程中,AAPT 2 process unexpectedly exit出现了一个神秘的错误。

我看到一条错误消息。然后我看到可绘制图像似乎有问题。

(res 的路径)\res\drawable-xxxhdpi\bg_yoru_hosi.png',试图停止守护进程。`

我知道图像有问题,但我不知道为什么会出现问题。

实际上,该应用程序将在真机上运行。另外,在我的应用程序中,我曾经以相同的方式制作图像(排列图像的大小,为每个分辨率准备不同的图像大小等)它已成功发布,因此谜团将加深。

有谁知道这种情况?如果您知道,我希望您告诉我如何解决它...我将在下面放置一条错误消息。

0 投票
6 回答
5317 浏览

android - 约束布局 - 组可见性在动态模块中不起作用

有没有人遇到过ConstraintLayout群组可见性问题?我正在使用ConstraintLayout1.1.3,并且在XML布局和 java 代码中设置组的可见性。但它不会改变可见性状态。它总是可见的。

这是布局文件

这可能是什么原因?

更新:

我忘了提到我在动态模块中使用这个布局。此外,我在基本模块中使用它进行了测试,它按预期工作,但在动态模块中没有。所以最后我找到了问题的原因。此外,当我调试代码并评估此表达式(group.getVisibility == View.GONE)时,它给了我 TRUE。(即使组内的视图仍然可见)

任何建议表示赞赏。

0 投票
1 回答
1626 浏览

android - Android appbundle:重命名生成的输出文件(.aab)

我正在尝试以.aab格式重命名生成的文件<appname>-<variant>-<buildType>-<version>,有什么方法可以重命名输出包文件,类似于 apk 重命名。

我尝试过复制和重命名,但问题是我需要将包命名为<appname>-<variant>-<buildType>-<version>. 当我创建这里提到的任务时如何使用 Gradle 更改 App Bundles 的生成文件名? 获取变体是使用子字符串,它同时提供variantBuildtype.

0 投票
1 回答
2394 浏览

android - 如何在 Android Studio 中使用我的上传密钥(没有密钥库)签署我的 android 应用程序包?

所以,我已经完成了将签名应用上传到 Playstore 的整个过程,发布它并按照此处的建议选择加入托管 Play 商店签名: https ://developer.android.com/studio/publish/app-签名#enroll

作为此过程的一部分,我生成了一个密钥库文件和上传密钥(我都有)。

在上述链接的末尾,文章指出:

当您选择加入 Google Play 应用签名后发布应用时,Google Play 会为您生成和管理应用的签名密钥。只需在将应用上传到 Google Play 之前,使用应用的上传密钥对应用的后续更新进行签名。对我来说,这意味着我需要上传密钥,而不需要密钥库文件用于未来的版本。

但是,当我回到 Android Studio 再次构建应用程序包(这样我可以发布另一个版本)时,我选择构建 > 生成签名包/APK,然后出现如下模式:

在此处输入图像描述

问题是,如何使用上传密钥而不是密钥库文件来生成新的签名应用程序包?

0 投票
0 回答
344 浏览

android - 拆分 apk 后出现 ResourceNotFoundException

在将 App-Bundle 集成到我的专业应用程序中后,我在为 ImageView 充气时通过 Crashlytics 遇到了很多关于应用程序第一个屏幕的问题。

这是ResourceNotFoundException

2019-03-11 12:13:52.605 14143-14143/? E/AndroidRuntime:在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 在 com.android.internal.os.ZygoteInit 的 java.lang.reflect.Method.invoke(Native Method)。主要(ZygoteInit.java:767)

当然一开始我无法重现,然后我用bundletool做了很多尝试。我见过类似的线程,但没有充分挖掘问题。

我发现从密度较低的捆绑包中生成 apk 可以重现崩溃。

通过我的尝试,我提取了 Nexus6P 规格如下

然后我将 screenDensity 更改为 320 甚至 120,这会导致崩溃。深入了解我们拥有的*.apks生成文件:

  • base-en.apk
  • 基础 ldpi.apk
  • 基础master.apk

我目前有 mdpi/hdpi/xhdpi/xxhdpi/xxxhdpi 文件夹。

我尝试添加 drawable-ldpi 文件夹但徒劳无功。

我检查了 base-ldpi.apk 以查看未找到的资源,它很好地存在于 apk 中。

作为快速修复,我可以从 gradle 配置中禁用密度拆分,甚至关闭应用程序包,但我希望有一个更好的结局。

任何想法 ?谢谢 :)

0 投票
2 回答
945 浏览

android - 我们应该如何处理由于离线 p2p 安装而导致的 Android App Bundle Resources$NotFoundException 崩溃?

使用 Android App Bundle,从 Play 商店安装应用程序的设备只会收到他们需要的资源。

与此同时,谷歌也在推进他们的离线 p2p 应用共享,使用“ShareIt”和“Files Go by Google”应用。https://android-developers.googleblog.com/2018/10/offline-p2p-installs-beta.html

我们的应用程序使用了一些 .png 图像,这些图像具有从 ldpi 到 xxxhdpi 的每个 drawable-dpi 的资源,但即便如此,由于捆绑 apk 被离线共享到需要不同资源的设备,我们已经开始收到大量 Resources$NotFoundException 崩溃.

搜索解决方案后,我只找到了来自 Google Play 开发人员的答案:

我怀疑从长远来看,网站和 P2P 共享程序会更好地正确共享此类 APK,所以我不会花太长时间担心它。

Android App Bundle 在 Android 应用中引入 Resource Not found crash

切换到 Android 应用程序包分发后,应用程序有时会因 Resources$NotFoundException 而崩溃

与此同时,由于在我们切换到 App Bundle 后 Resources$NotFoundException 崩溃的数量缓慢上升,我们的 Play Console 崩溃统计数据越来越接近“不良行为阈值”。大约 1% 的用户似乎在离线共享应用程序。

我们现在能想到的避免这种情况的唯一解决方法是:

  • 在应用程序启动时,检查应用程序的 packageManager.getInstallerPackageName 是否为“com.android.vending”,这意味着它来自 Play 商店,如果不是,则将它们重定向到从 Play 商店重新安装,这样可以确保Play 商店为该设备提供正确的捆绑资源。然而,这完全否定了离线 p2p 应用程序共享的优势。

或者

  • 恢复使用 apk 而不是 app bundle。

第三种选择可能是确保所有图像资源都是独立于 dpi 的矢量可绘制对象,但这不太现实,因为图像资源并不总是足够简单以成为矢量可绘制对象。

有没有更优雅或推荐的方法来处理 Android App Bundles 和离线 p2p 应用程序共享的 Resources$NotFoundException 问题,或者有没有人遇到更好的解决方法来帮助防止它们?

0 投票
2 回答
432 浏览

android - 从 app bundle 生成 APK 时的签名信息

Android 文档指出,我们应该将签名信息传递给“build-apks”命令,以便将 apk 部署到设备上。我没有将任何签名信息传递给“build-apks”命令,但我仍然能够将 apk 部署到我的设备。从日志中,我观察到 apk 是使用 android 调试密钥库自动签名的。关于“从包构建apks”的android文档是错误的还是我的理解是错误的?

文档链接和片段: https ://developer.android.com/studio/command-line/bundletool

" bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

请注意,上面的命令会创建一组未签名的 APK。如果您想将 APK 部署到设备上,您还需要包含应用的签名信息,如下面的命令所示。"

注意:我使用的是 bundletool 0.9.0 版本。

0 投票
1 回答
1857 浏览

android - 如何将 productFlavors 用于 android aab 捆绑包

我尝试通过 productFlavors 构建不同的 Android 应用程序包。要保留和测试文件,我需要一个固定的文件名。

对于 APK,我有以下工作代码:

但这不适用于捆绑包。我试图让它与这段代码一起工作:

但版本代码始终是默认版本代码。我的 build.gradle 看起来像这样:

我也尝试设置 project.ext.set("archivesBaseName", "app"); 每种风味,但这总是会生成游戏风味的名称。应用程序包内的清单包含正确的版本代码。如何在复制任务中从当前编译的风格中获取正确的版本代码?

0 投票
2 回答
998 浏览

android - 意外接受后退出 Android App Bundle

几个月前,我的一位团队成员选择了这个可怕的应用程序捆绑方案。

2 周前我们发生了一个重大事件,AAB 文件使应用程序崩溃,而经过测试的 APK 文件却没有。在发现 bundletool.jar 的额外步骤之前,我们无法进行测试,修复它是一场噩梦。

我的问题是,一旦我们不小心选择了这个系统,我该如何选择退出?我们更喜欢简单的 APK。