我正在创建我的Android游戏的即时版本。我已按照此示例中的说明进行操作:
问题在于,在功能模块中,我需要访问由com.google.gms.google-services插件实现的服务,因此我将其放在该模块的gradle文件中依赖关系的底部,但是我的游戏的软件包名称是(例如)com.me.mygame,而功能模块的软件包名称是com.me.mygame.base,上述插件失败了,因为我的游戏中没有定义com.me.mygame.base软件包应用google-services.json文件。
所以我也尝试通过将功能模块的名称设置为com.me.mygame来解决这个问题,并且gradle可以成功构建项目,但是在尝试构建到期的APK时会失败
com.android.dex.DexException: Multiple dex files define Lcom/me/mygame/BuildConfig
我试图通过将此选项添加到我的gradle模块中来解决此问题,如对一个相关问题的回答所示:
android {
dexOptions {
preDexLibraries = false
}
}
但无济于事。问题仍然存在。
似乎合乎逻辑的事情是功能模块具有不同的程序包名称,但是如前所述,由于com.google.gms.google-services插件未找到该程序包的配置,该操作将失败。
所以...我对此一无所知,没有任何想法,因此欢迎您提供任何帮助。
预先感谢一百万!
更新:我在以下URL的github中发布了一个最小的示例:
https://github.com/fmmarzoa/IssuesWithFirebaseCrashlytics
我直接从Google指南中获取了该示例。 master分支为空,到目前为止,我尝试过的解决方法都命名为“ firebase / ...”。最后一个是这个“ firebase / updating-plugins”:
https://github.com/fmmarzoa/IssuesWithFirebaseCrashlytics/tree/firebase/updating-plugins
我在其中所做的就是按照dchai的建议更新了几件事,这似乎可以解决Google Services插件的问题(至少现在确实可以构建),但是Firebase Crashlytics插件取决于上述内容一个继续失败并显示错误消息:
Crashlytics找不到清单。在找不到 /Users/fran/Desktop/Idea/android-topeka/base/build/intermediates/merged_manifests/debug/AndroidManifest.xml
答案 0 :(得分:2)
较旧版本的插件无法正确提取applicationId
来检查google-services.json
。
如果您升级到com.android.tools.build:gradle:3.3.0-alpha08
和com.google.gms:google-services:4.1.0
,您的原始项目结构应该会很好。