Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Gradle Product与GooglePlusApi一起为不同的应用程序添加了不同的口味_Android_Gradle_Google Plus Signin - Fatal编程技术网

Android Gradle Product与GooglePlusApi一起为不同的应用程序添加了不同的口味

Android Gradle Product与GooglePlusApi一起为不同的应用程序添加了不同的口味,android,gradle,google-plus-signin,Android,Gradle,Google Plus Signin,我在android应用程序中添加了google plus登录 我想用gradle中的productFlavors创建三个不同的apk应用程序ID 当我创建apk Different applicationId时,google plus登录不起作用 我尝试在开发人员控制台中使用新的applicationId创建新的客户端id,但控制台希望在AndroidManifest.xml中使用packagename <manifest xmlns:android="http://schemas.and

我在android应用程序中添加了google plus登录

我想用gradle中的productFlavors创建三个不同的apk应用程序ID

当我创建apk Different applicationId时,google plus登录不起作用

我尝试在开发人员控制台中使用新的applicationId创建新的客户端id,但控制台希望在AndroidManifest.xml中使用packagename

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.msevgi.myapp">
如何在我的应用程序中使用不同的applicationId登录google plus

谢谢

//格拉德尔

compileSdkVersion 22
    buildToolsVersion "21.1.2"
    defaultConfig {
        minSdkVersion 18
        targetSdkVersion 21
    }
    productFlavors {
        development {
            applicationId "com.msevgi.myapp.development"
            versionCode 46
            versionName "1"
            flavorDimension "type"
        }

        beta {
            applicationId "com.msevgi.myapp"
            versionCode 46
            versionName "1"
            flavorDimension "type"

        }
        internal {
            applicationId "com.msevgi.myapp.internal"
            versionCode 46
            versionName "1"
            flavorDimension "type"
        }
    }

    buildTypes {
        release {
            zipAlignEnabled true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-android-optimize.txt'
            debuggable false
        }
        debug {
            zipAlignEnabled true
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-android-optimize.txt'
        }
    }
//AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.msevgi.myapp">

我认为您应该为每种口味生成一个api密钥。包名将是gradle构建文件中味道的applicationId。

根据这一点:

"that matches a package name and SHA1 signing-certificate fingerprint"
我认为你应该:

  • 为每个风格/类型指定一个包名(“build.gradle中的applicationId”)(正如您所做的那样)
  • 通过为用于对APK进行签名的每个“密钥库”运行“keytool”,获取“SHA1签名证书指纹”。这意味着调试构建的默认“~/.android/debug.keystore”,或者“keystore”,它不在“build.gradle”中,而是由您在android Studio或Eclipse中运行“Generate Signed APK”时指定的
  • 在Google API控制台上为#1和#2的每个组合创建一个凭据

  • 不要监听控制台,只需从build.gradle:)传递applicationId。嗨,mustafasevgi,您解决了这个问题吗?你怎么修理它?谢谢你说得对。我创建了一个全新的演示项目,效果很好。只需将包名作为应用程序Id就可以了。