Android - 程序包与现有程序包的名称相同

axi*_*tjz 6 android gradle build.gradle

我在Gradle上有这个默认配置.

defaultConfig {
    applicationId "com.my.application"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 190011
    versionName "2.2.1"
}
Run Code Online (Sandbox Code Playgroud)

而那些口味

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
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经在Play商店发布了使用默认应用程序ID"com.my.application"的应用程序,但是当我安装了Play商店版本并且想要安装"dev"风格的应用程序时,它会弹出一条消息说明这一点:

app name dev 
App not installed
The package conflicts with an existing package by the same name
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我曾尝试更改dev的buildCode,但这也无效.

有什么猜测?

提前致谢.

axi*_*tjz 5

好吧,在尝试通过命令行安装应用程序的修改版本时,我发现以下错误:

\n\n
adb install ~/Desktop/app-dev-release.apk\nFailed 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]\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我\xc2\xb4ve修改了我的AndroidManifest.xml文件,如下所示:

\n\n
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />\n
Run Code Online (Sandbox Code Playgroud)\n\n

这个错误的描述相当糟糕。希望该解决方案将来适用于像我这样的人。

\n\n

不管怎么说,还是要谢谢你。

\n