如何在不更改packagename的情况下更改applicationId?

时间:2018-02-14 10:17:25

标签: android android-studio android-gradle

有没有办法在不更改android studio中的packagename的情况下更改applicationId? 阅读一些我在项目模块设置中更改了applicationid的地方。但是这样做了

Error:Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name 'com.myapplicationid' 

有什么想法怎么做?

我的gradle是在改变味道之后

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId 'com.myapplicationid'
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
    sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
    productFlavors {
    }
}

dependencies {
....
}
apply plugin: 'com.google.gms.google-services'

4 个答案:

答案 0 :(得分:1)

您可以从defaultConfig设置applicationId并从build.gradle文件中删除productFlavor(我已经过测试,它应该可以工作):

apply plugin: 'com.android.application'
android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.myapplicationid"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
    sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
}

dependencies {
....
}
apply plugin: 'com.google.gms.google-services'

如果你仔细看,我删除了

productFlavors {
}

部分

此外,请勿忘记更新google-services.json

答案 1 :(得分:0)

您可以像这样声明不同的applicationId

 android {  
      flavorDimensions "Flavors1"
            productFlavors {
                Flavors1{
                    applicationId "com.myapplicationid1"
                           }

                Flavors2{
                    applicationId "com.myapplicationid2"
                           }
            }
    }

如果您想更改仅在defaultConfig

中更新的applicationId
 defaultConfig {
        applicationId "your_new.id"
}

如果您已使用

,请不要忘记更新google-services.json

答案 2 :(得分:0)

您可以为此应用程序声明多个Flavors,如

productFlavors {
    MainApp {
        applicationId = "com.company.app"
    }
    NewAppFlavor {
        applicationId = "com.company.newapp"
    }
}

使用此风格构建应用程序和签名,您可以通过build variants option in android studio

在不同风格之间进行更改

答案 3 :(得分:0)

回答问题的2个步骤:

  • 将应用程序gradle中的applicationId更改为新的
  • 将google-services.json的package_name更改为新的

如果遇到错误没有找到匹配的客户端名称... ,请尝试以下步骤,它对我有用:

  • 从应用程序gradle中删除应用插件:“ com.google.gms.google-services”
  • 使用Gradle File同步项目->清理构建
  • 确保您的applicationId是否有效
  • 将您的 applicationId 更改为新版本,以确保其在构建时不会出现错误。
  • apply plugin:'com.google.gms.google-services'再次添加到您的应用程序包中
  • 像第3步一样,将google-services.json的package_name更改为新名称
  • 构建成功