我在Gradle上有这个默认配置。
defaultConfig {
applicationId "com.my.application"
minSdkVersion 16
targetSdkVersion 22
versionCode 190011
versionName "2.2.1"
}
那些口味
productFlavors {
dev {
applicationIdSuffix ".dev"
versionCode 333333
buildConfigField "String", "ANVIL_BASE_URL", "DEBUG_URL"
resValue "string", "app_name", "app name dev"
signingConfig signingConfigs.releasesign
}
prod {
buildConfigField "String", "ANVIL_BASE_URL", "PROD_URL"
resValue "string", "app_name", "app name"
signingConfig signingConfigs.releasesign
}
}
我在Play商店发布了使用默认应用程序ID“com.my.application”的应用程序,但是当我安装了Play商店版本并希望安装“dev”风格的应用程序时,它会弹出一条消息这说:
app name dev
App not installed
The package conflicts with an existing package by the same name
我做错了吗?我曾尝试更改dev的buildCode,但这也无效。
有什么猜测吗?
提前致谢。
答案 0 :(得分:4)
好吧,在尝试通过命令行安装应用程序的修改版本时,我发现了以下错误:
adb install ~/Desktop/app-dev-release.apk
Failed to install /Users/axier/Desktop/app-dev-release.apk: Failure [INSTALL_FAILED_DUPLICATE_PERMISSION: Package com.my.application.dev attempting to redeclare permission com.my.application.permission.C2D_MESSAGE already owned by com.my.application]
所以我修改了我的AndroidManifest.xml文件:
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
这个错误的描述很差。希望解决方案能在将来为像我这样的人工作。
非常感谢。
答案 1 :(得分:0)
你应该看看the gradle documentation (ApplicationId versus PackageName)。你是否真的在游戏商店发布了包装名称&#34; com.my.application&#34;?我对你的问题的建议是将applicationId放入productFlavors。另请查看this stackoverflow answer,它基本上也可以回答您的问题。
答案 2 :(得分:0)
您已在手机上安装了具有相同软件包名称的应用程序。在安装此软件包之前安装int。