Android - 该软件包与现有软件包的名称相同

时间:2016-09-22 13:52:21

标签: android gradle build.gradle

我在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,但这也无效。

有什么猜测吗?

提前致谢。

3 个答案:

答案 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。