标签: android-app-bundle

动态功能活动未加载,卡在安装中

我正在尝试为我的项目实现应用程序包。在启动动态模块活动时,它正在下载模块并尝试安装该模块,但无法完全安装它。它被卡住了,如下图所示。 在此输入图像描述

以下链接供参考。 https://github.com/googlesamples/android-dynamic-features

import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log
import android.view.View
import android.widget.ProgressBar
import android.widget.TextView
import com.google.android.play.core.splitinstall.*
import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus
import com.lenskart.app.R

private const val modulePackageName = "com.test.feature"

private const val htoClassname = "$modulePackageName.hto.HtoActivity"

private const val atHomeClassname = "$modulePackageName.athome.AtHomeActivity"

class BundleActivity : AppCompatActivity() {

    private val listener = SplitInstallStateUpdatedListener { state ->
        val multiInstall = state.moduleNames().size > 1
        state.moduleNames().forEach { name ->
            when (state.status()) {
                SplitInstallSessionStatus.DOWNLOADING -> {
                    displayLoadingState(state, "Downloading $name")
                }
                SplitInstallSessionStatus.REQUIRES_USER_CONFIRMATION -> {
                    startIntentSender(state.resolutionIntent().intentSender, null, 0, …
Run Code Online (Sandbox Code Playgroud)

generics android app-bundle android-app-bundle

2
推荐指数
1
解决办法
2100
查看次数

classnotfoundException 获取如果我在成功下载后启动动态模块中的活动

通过内部测试,我可以下载动态功能模块。成功下载后,我正在使用包名称打开动态模块中的活动,但我遇到了类未找到异常。我检查了 APK 大小,但大小没有增加。下面是我的代码。请帮忙

下面是我下载模块的代码。我使用的是 Playstore 中提供的内部测试。

     public void loadFeatureTwo() {
    // Builds a request to install the feature1 module
    SplitInstallRequest request =
            SplitInstallRequest
                    .newBuilder()
                    // You can download multiple on demand modules per
                    // request by invoking the following method for each
                    // module you want to install.
                    .addModule("feature2")
                    .build();

    // Begin the installation of the feature1 module and handle success/failure
    splitInstallManager
            .startInstall(request)
            .addOnSuccessListener(new OnSuccessListener<Integer>() {
                @Override
                public void onSuccess(Integer integer) {
                    // Module download successful
                   /* Intent intent = …
Run Code Online (Sandbox Code Playgroud)

java android android-app-bundle

2
推荐指数
1
解决办法
1376
查看次数

收到此错误“模块‘base’和‘moduleA’包含具有不同内容的条目‘res/drawable/xyz.xml’。”

moduleA 是一个具有依赖关系的动态功能模块,它是一个 aar lib。

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':app')
    implementation(name:'lib', ext:'aar')
}
Run Code Online (Sandbox Code Playgroud)

它构建成功并安装在模拟器上,但每当我想创建应用程序包时,都会收到以下错误:

Modules 'base' and 'moduleA' contain entry 'res/drawable/xyz.xml' with different content.
Run Code Online (Sandbox Code Playgroud)

如果我应该在应用程序模块中重命名 xyz.xml,则会收到错误:

../moduleA/build/intermediates/metadata_feature_manifest/fullDebug/processFullDebugManifest/metadata-feature/AndroidManifest.xml:61:13-63:50: AAPT: error: resource drawable/xyz (aka my.app.main.drawable/xyz) not found.
Run Code Online (Sandbox Code Playgroud)

这是Plaid 的模块化文章中强调的问题之一。

为了解决这个问题,我必须在应用程序模块中创建一个空的 xyz.xml,但是在创建应用程序包时,我收到错误:

Modules 'base' and 'moduleA' contain entry 'res/drawable/xyz.xml' with different content.
Run Code Online (Sandbox Code Playgroud)

问题是什么以及如何解决?

android android-app-bundle dynamic-delivery dynamic-feature-module

2
推荐指数
1
解决办法
3237
查看次数

Android App Bundle build错误:<fusing>元素缺少'include'属性

我正在尝试开发具有动态功能的Android应用程序.

我已经将"示例"动态功能模块添加到项目中,当我尝试从Android Studio构建"Android App Bundle"时,我收到以下错误,

Caused by: java.util.concurrent.ExecutionException: com.android.tools.build.bundletool.exceptions.manifest.ManifestFusingException$FusingMissingIncludeAttribute: <fusing> element is missing the 'include' attribute (split: 'sample').
Run Code Online (Sandbox Code Playgroud)

动态功能模块清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dist="http://schemas.android.com/apk/distribution"
package="com.features.dynamic.sample">
<dist:module
    dist:instant="false"
    dist:onDemand="true"
    dist:title="@string/title_sample">
    <dist:fusing include="false" />
</dist:module>
</manifest>
Run Code Online (Sandbox Code Playgroud)

android apk android-studio build.gradle android-app-bundle

1
推荐指数
1
解决办法
549
查看次数

构建Android应用捆绑包时如何解决“按需模块标题缺失”的问题?

我尝试将我的应用程序项目中的功能拆分为一些动态模块。我已经将一些布局,可绘制和Java类移至动态功能模块。我遵循说明,并成功将项目构建到我的android设备上。构建APK成功,但是,当我尝试构建android应用程序捆绑包时,显示异常

Title for on-demand module 'myfeaturemodule' is missing in the base resource table.

如何解决此异常以及为什么仅在我要构建应用程序捆绑包时才显示?

这是来自Android Studio的stacktrace:

org.gradle.internal.UncheckedException: java.util.concurrent.ExecutionException: com.android.tools.build.bundletool.exceptions.ValidationException: Title for on-demand module 'myfeaturemodule' is missing in the base resource table.
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:63)
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:40)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:76)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:801)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:768)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
    at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
    at …
Run Code Online (Sandbox Code Playgroud)

android android-app-bundle dynamic-feature

1
推荐指数
1
解决办法
187
查看次数

Android 应用程序包不支持动态语言更改

我的应用程序支持多种语言,并且可以在应用程序内动态更改,并且以前与 APK 运行良好。但是当我采用 AAB 而不是 APK 时,我遇到了这个问题。现在我的应用程序不会更改应用程序内的语言,但如果我要更改设备的语言,那么它也会更改我的应用程序的语言。对于上述问题是否有任何解决方案而不是使用

bundle {
        language {
            enableSplit = false
        }
    }
Run Code Online (Sandbox Code Playgroud)

multilingual android google-play android-app-bundle

1
推荐指数
1
解决办法
2426
查看次数

如果我使用 jarsigner 签署 AAB,我是否需要在部署之前签署 APK 以及生成的 APK?

在Azure DevOps中,我解压缩aab,修改aab中的一些文件(图标、资源、清单),并使用bundletool构建模块。我接下来的步骤是:

  1. 使用jarsigner对aab进行签名
  2. 使用bundletool生成APKS并传递签名信息
  3. 解压/提取其中的通用APK
  4. 使用 jarsigner 对 APK 进行签名并将其发送到测试设备

我假设我签名的次数超出了必要的次数,因为我签名了 3 次(AAB、APKS 和 APK)。需要签署什么?每个签名任务只需要不到 10 秒,但每个任务都会增加额外的复杂性,我希望它尽可能简单以实现可重用性。

android apk xamarin.android android-app-bundle bundletool

1
推荐指数
1
解决办法
4566
查看次数

为什么新版本的 Google Play Console 网站不再使用“private_key.pepk”文件生成应用签名密钥?

当我在 Android Studio 中创建应用程序包时,会在应用程序包旁边生成一个“private_key.pepk”文件。在 Google Play Console 中发布应用程序包的旧教程中,我注意到需要上传“private_key.pepk”文件才能生成应用程序签名密钥

这是我第一次发布应用程序包。此外,我正在新的网络版 Google Play Console 中发布它。我刚刚上传了我的应用程序包,并且不需要上传“private_key.pepk”文件来生成应用程序歌唱密钥

这是否意味着我们不再需要“private_key.pepk”文件,或者我只是在发布应用程序包时犯了一个错误?

android google-play-console android-app-bundle

1
推荐指数
1
解决办法
3466
查看次数

Google 地图无法使用 AAB 文件,但可以使用 APK

我知道这个问题已经被问过很多次了,但是,自从 Google Play 上次更新以来,我们面临着许多变化。

最近,我与一个团队远程合作,开发了一个使用Google 地图的应用程序。当我构建应用程序的发行版本(使用特定的密钥库文件)并将其安装在真实设备上时,该应用程序可以正常运行。然而,当没有任何 Google Play 经验的 IT 成员将应用程序上传到 Google Play 时,Google 地图无法处理来自 Google Play 的 AAB 文件安装的应用程序。我已导出“pepk”文件来签署应用程序,但团队认为 Google Play 会自动签署应用程序,并且不需要 pepk 文件。问题是,我们应该如何解决这个问题呢?如果有任何解决方案,如果您帮助我,我将不胜感激。

我添加了来自 Google Play 的 APK 文件和 AAB 文件的发行版本的屏幕截图。

提前致谢。

在此输入图像描述 在此输入图像描述

android android-app-bundle

1
推荐指数
1
解决办法
847
查看次数

是否可以将捆绑文件转换为源代码?

不久前,我开发了一个android应用程序并以捆绑文件的形式发布在google play store中,但由于我的特殊情况删除了源代码。现在,我想更新该应用程序。是否可以使用我的 Google Play 控制台帐户中的捆绑文件取回源代码?提前致谢。

android google-play android-app-bundle

0
推荐指数
1
解决办法
4664
查看次数