【问题标题】:Android Gradle - Library calls activity using flavor package nameAndroid Gradle - 库使用风味包名称调用活动
【发布时间】:2014-09-24 15:33:12
【问题描述】:

我有一个使用 AdMarvel SDK 的 Android 应用程序的 gradle 风格。该应用正在尝试使用

启动一个活动

com.myapp.flavour1/com.admarvel.android.ads.AdMarvelActivity,结果为ActivityNotFoundException

我认为需要调用com.myapp.main/com.admarvel.android.ads.AdMarvelActivity

  • 这是否可以在清单/gradle 配置中修复?
  • 是不是我的参数中使用了错误的context造成的?
  • 还是只是库中的一个错误?

任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 你能在清单中显示你的声明吗?
  • 我已经修好了。在我的风味清单中,我忘记将 标签包装在 标签中。清单已正确合并,但活动位于错误的位置,因此无法找到。愚蠢的错误!还是谢谢

标签: android gradle android-gradle-plugin build.gradle


【解决方案1】:

您必须为给定的风格创建一个单独的清单 xml,并在该清单中声明来自 AdMarvel 库的活动。后面有一个SO question
至于风味特定的清单,您需要放入src/flavor_name/res/AndroidManifest.xml - 这是here 描述的。

【讨论】:

  • 你确定src/flavor_name/res/AndroidManifest.xml?我也在文档中阅读过它,但将其移至 src/flavor_name/AndroidManifest.xml 使其作为风味清单出现在 Android Studio 中,但无论如何它似乎将其合并。我在风味清单中声明了这些活动,但它不起作用。我已经把它移到我的主要清单中声明,这很有效。然而,这似乎是错误的,因为它只有一种风味会真正具有这种活性。
  • 我在我的项目中做的几乎一样,除了我自定义了一个不同的文件——而且它似乎工作得很好。您还需要在 Build Variants 选项卡上选择要在 Android Studio 中构建的变体。另外,不确定您所说的“移动”是什么意思-我认为您需要两个文件,一个在 src/main/... 中的“默认”文件,以及一个适合您口味的自定义文件。
  • 我的意思是如果我将风味清单从res 文件夹中移出,直接进入风味文件夹,它会在Android 项目视图中检测到(通过将项目下拉列表更改为“Android” )。但是,当此清单位于 res 文件夹中时,它会被忽略。
  • 尝试构建项目,看看 APK 中的结果 - Android Studio 显示的内容并不总是 100% 正确。
  • 是的,至少我现在可以使用它,我将移动配置并比较build/intermediates/manifests 文件夹中生成的清单。干杯
猜你喜欢
  • 2016-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 2014-05-06
  • 1970-01-01
相关资源
最近更新 更多