TWA应用崩溃:类“androidx.browser.trusted.LauncherActivity”未找到,如何解决?
2024-03-19 01:59:41
TWA 应用崩溃:类未找到“androidx.browser.trusted.LauncherActivity”
简介
在开发 TWA(Trusted Web Activities)应用时,你可能遇到了由于找不到类“androidx.browser.trusted.LauncherActivity”而导致的崩溃错误。本文将深入探讨导致此问题的潜在原因,并提供分步指南来解决它。
原因
这个错误通常是由于以下原因引起的:
- 缺少必要的库依赖项: 需要在项目的 build.gradle 文件中正确添加“androidx.browser”库。
- AndroidManifest.xml 配置不正确: 需要在
元素中声明“androidx.browser.trusted.LauncherActivity”。 - 构建缓存损坏: 旧的构建文件可能导致错误。
- 过时的库版本: 使用旧版本的“androidx.browser”库可能会导致问题。
- 最低 SDK 版本过低: TWA 应用需要最低 SDK 版本 21 或更高版本。
解决方案
1. 构建.gradle 文件:
在 build.gradle.kts(Module:app)文件中添加以下依赖项:
implementation("androidx.browser:browser:1.4.0")
2. AndroidManifest.xml:
在 AndroidManifest.xml 文件中添加以下
<activity
android:name="androidx.browser.trusted.LauncherActivity"
android:label="${launcherName}"
android:exported="true">
<meta-data
android:name="androidx.browser.trusted.enabled"
android:value="true" />
<meta-data
android:name="androidx.browser.trusted.enabled"
android:value="${defaultUrl}"/>
<meta-data
android:name="asset_statements"
android:value="${assetStatements}" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="https"
android:host="${hostName}"/>
</intent-filter>
</activity>
3. 清除构建:
在 Android Studio 中选择“Build”菜单,然后选择“Clean Project”。
4. 同步项目:
在 Android Studio 中选择“File”菜单,然后选择“Sync Project with Gradle Files”。
5. 检查许可:
在 AndroidManifest.xml 文件中声明以下权限:
<uses-permission android:name="android.permission.INTERNET" />
6. 检查包名:
确保已将正确的包名分配给应用程序,并且与 AndroidManifest.xml 文件中的包名一致。
7. 检查最小 SDK 版本:
TWA 应用的最小 SDK 版本应设置为 21 或更高版本。
8. 重新编译和运行:
完成所有步骤后,重新编译并运行应用程序。错误应该已解决。
其他提示:
- 使用最新版本的“androidx.browser”库。
- 尝试使用不同的模拟器或真机设备。
- 检查 logcat 日志以查找其他错误信息。
常见问题解答
- 问题:即使应用已正确配置,但错误仍然存在。怎么办?
答:尝试使用不同的模拟器或真机设备,或清除设备上的缓存和数据。
- 问题:错误出现在真机设备上,但在模拟器上却没有。怎么回事?
答:确保真机设备的 Android 版本符合 TWA 应用的最低 SDK 版本要求。
- 问题:如何更新“androidx.browser”库?
答:在 build.gradle.kts(Module:app)文件中更新“androidx.browser”库的版本号。
- 问题:错误消息提到“asset_statements”。这是什么?
答:asset_statements 是用于验证 TWA 应用中资产完整性的签名信息。确保已正确生成和指定该信息。
- 问题:应用程序在启动时崩溃。是怎么回事?
答:检查 logcat 日志以查找有关崩溃的更多信息。它可能会显示导致问题的具体异常或错误消息。