This question already has answers here:
Using build types in Gradle to run same app that uses ContentProvider on one device

(14个回答)


4年前关闭。




我已经使用Google Play开发者控制台创建了两个单独的应用程序:

带有ID的
  • “MyApp” com.myname.app(用于prod flavor )
  • ID为com.myname.appStage的“MyApp Stage”(用于stage flavor )

  • 我使用gradle中的com.github.triplet.play任务将这些口味部署到相应的Beta channel 。

    当我尝试在同一设备上安装这两种口味时,Google Play会给我error: -505。如果我卸载第一个已安装的版本,则可以成功安装第二个版本。

    如我所见in this tutorial,应该足够了。

    任何想法出什么事了吗?

    这是我的gradle脚本 fragment :
    def getGoogleApiJsonFile() {
        (...)
    }
    android {
        (...)
    
        defaultConfig {
            applicationId "com.myname"
            (...)
        }
        buildTypes {
            release {
                (...)
                signingConfig signingConfigs.release
            }
        }
        productFlavors {
            prod {
                applicationIdSuffix '.app'
            }
            stage {
                applicationIdSuffix '.appStage'
            }
            dev {
                applicationIdSuffix '.appDevelop'
                (...)
            }
        }
        play {
            jsonFile = getGoogleApiJsonFile()
            track = 'beta'
        }
        (...)
    }
    

    以下是AndroidManifest.xml的一些 fragment :
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.myname">
    
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    
        <uses-feature android:name="android.hardware.camera"
            android:required="true" />
    
        <application
            android:name=".App"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme"
            android:networkSecurityConfig="@xml/network_security_config">
    
            <activity
                android:name=".login.LoginActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
            (... more activities here ...)
            <provider
                android:authorities="com.myname.fileprovider"
                android:name="android.support.v4.content.FileProvider"
                android:exported="false"
                android:grantUriPermissions="true">
                <meta-data
                    android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/file_provider_paths"
                    />
            </provider>
    
            (... meta-data for io.fabric.ApiKey here...)
    
        </application>
    
    </manifest>
    

    最佳答案

    由于您的应用中有内容提供商,因此您需要关注this

    关于android - 同一设备上的两种口味的应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41962351/

    10-09 00:31