Android即时应用程序:找不到默认活动

11

这似乎是清单合并错误。我正在尝试将现有代码移植到即时应用程序模块中。我尝试了以下步骤:

  1. 将主应用程序模块更改为baseFeatureModule。
  2. 创建一个名为completeApp的新模块。
  3. 清空completeAppModule的清单文件:

  4. 在completeAppModule中添加项目依赖:

    implementation project(":udofy")

  5. 在基础模块中添加以下条目:

    在android块中添加baseFeature true

    在依赖项中添加application project(":fullModule")

我已经尝试重新构建/无效缓存和重启/重启studio,但没有帮助。有人可以帮我解决吗?


你的“编辑配置”可能缺少某些内容。请查看此链接:https://dev59.com/K2Uo5IYBdhLWcg3wtRUx#32665255 - Julia K
此外,请仔细检查在将现有应用程序转换为AIA项目时是否遗漏了任何重要步骤。请参考以下链接: https://codelabs.developers.google.com/codelabs/android-instant-apps/index.html#0 或 https://github.com/googlesamples/android-instant-apps - Julia K
我也遇到了这个问题。真的很奇怪,因为有时从git存储库进行全新检查会导致应用程序完美构建,然后在进行一些更改后,Android Studio就无法确定默认活动。 - dazza5000
我曾经遇到过同样的问题,最终通过遵循这个解决方案来修复它。 - Ahmed Salem
3个回答

0

我发现,在基础模块中,Firebase插件与清单合并失败了。

选项1:

我通过在基础模块的“AndroidManifest.xml”中添加以下内容来解决这个问题。

<provider
        android:name="com.google.firebase.provider.FirebaseInitProvider"
        android:authorities="mypackage.firebaseinitprovider"
        android:exported="false"
        tools:node="merge"/>

不要忘记替换mypackage

选项2:

将整个<application ...>...</application>标签复制到应用程序模块的AndroidManifest.xml中。


0
根据这个线程,在较新的Android Studio 版本中没有源标签。但是,你可以编辑build.gradle文件代替。请参考链接。同时,确保你已经在AndrodManifest.xml文件中指定了默认活动。在默认活动的xml部分中,应该有这些标签
<intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

0
对我来说问题在于我正在使用Crashlytics和另一个调试工具,它们与即时应用程序不兼容。这导致清单合并失败。当我删除了Crashlytics和其他实用程序后,APK的清单能够成功生成,并且Android Studio能够找到基本功能中存在的默认活动。

你能进一步缩小范围吗?我遇到了同样的问题,可能也与Crashlytics有关(尽管只在Android Studio中发生)。 - John O'Reilly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接