使用 productFlavors 打不同的包安装失败的问题

2019-09-05 10:44:17 +08:00
 getYourMother
在 build.gradle 开了两个 productFlavors 配置了不同的包名、签名文件、app 名、app icon、版本号、版本名,然后切换 Build Variant 直接安装到模拟器上的时候,安装第一个正常,安装第二个就报错了:

09/05 10:38:07: Launching app
Install failed.
Installation failed
<a href='rerun'>Rerun</a>

另外,尝试打包成 apk 文件安装到手机上也是第一个成功,第二个失败:

安装失败,xxx 与 xxx 不兼容,无法同时安装。

不会覆盖安装的话说明包名是不同的,也就是说 productFlavors 的配置是生效了的,但就是无法同时安装,各位大佬知道原因吗?
6432 次点击
所在节点    Android
10 条回复
frantic
2019-09-05 11:04:59 +08:00
看看你项目的`AndroidManifest.xml` 中的`provider`的`android:authorities`包名是不是没动态替换
getYourMother
2019-09-05 11:19:27 +08:00
@frantic 确实没替换,不过我动态替换成不同的包名后还是安装失败..貌似跟这个也没关系?
z42514
2019-09-05 11:23:26 +08:00
用 adb install 安装,看看更详细的报错说明
nicevar
2019-09-05 11:39:57 +08:00
基本上就是上面说的 provider 和 authorities 问题,你不替换一定不行的
getYourMother
2019-09-05 11:43:47 +08:00
@z42514 看到了:
Performing Streamed Install
adb: failed to install app-dwpd-release.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
frantic
2019-09-05 11:44:33 +08:00
@getYourMother 你可以把 AndroidManifest 和 对应的 build.grale 脱敏后上传到 gist 上面然后让大家看看 这样解决问题更快一点
getYourMother
2019-09-05 11:45:41 +08:00
@nicevar 嗯,我已经 ctrl+shift+f 把找到的都替换了,就是还是失败...
yukiww233
2019-09-05 11:48:37 +08:00
testonly 一般是 android studio 直接运行出来的 debug 包
打 release 包或者在 gradle 里加 android.injected.testOnly=false
getYourMother
2019-09-05 14:16:01 +08:00
感谢各位大佬,问题已经解决了,主要还是包名冲突的问题,我用 adb install -t 安装 apk 时告诉我在 androidmanifest 里配置的极光推送的包名有冲突,因为是用的动态的 applicationId,所以 ctrl+shift+f 时没找到...总之折腾了快两天总算解决了.感谢大家
secretman
2019-09-05 14:27:46 +08:00
一看就是包名没替换干净,问问题上代码,浪费一群老哥的好心好意~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598129

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX