プロジェクトをビルドしようとすると、次のエラーが発生し続けます。
Execution failed for task ':app:processReleaseGoogleServices'.
No matching client found for package name 'com.my.package'
google-services.json
を作成して作り直し、アプリとパッケージcom.my.package
を使用しました。
これが私のプロジェクトbuild.gradleです:
buildscript {
repositories {
...
}
dependencies {
classpath 'com.Android.tools.build:gradle:2.0.0-beta6'
classpath 'com.github.JakeWharton:sdk-manager-plugin:220bf7a88a7072df3ed16dc8466fb144f2817070'
classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'
classpath 'io.fabric.tools:gradle:1.+'
classpath 'com.newrelic.agent.Android:agent-gradle-plugin:4.265.0'
classpath 'com.google.gms:google-services:2.0.0-alpha9'
}
}
allprojects {
repositories {
...
}
}
// Define versions in a single place
ext {
supportLibraryVersion = '23.2.0'
playServicesVersion = '8.4.0'
}
これが私のアプリbuild.gradleです:
apply plugin: 'Android-sdk-manager'
apply plugin: 'com.Android.application'
apply plugin: 'io.fabric'
apply plugin: 'newrelic'
apply plugin: 'com.neenbedankt.Android-apt'
Android {
packagingOptions {
exclude 'LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
dexOptions {
jumboMode true
}
lintOptions {
disable 'InvalidPackage'
abortOnError false
}
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
applicationId "com.my.package"
minSdkVersion 15
targetSdkVersion 23
}
buildTypes {
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-DEBUG'
...
}
staging {
applicationIdSuffix '.staging'
versionNameSuffix '-STAGING'
...
}
release {
...
}
}
}
dependencies {
compile "com.Android.support:support-v4:$rootProject.supportLibraryVersion",
"com.Android.support:support-annotations:$rootProject.supportLibraryVersion",
"com.Android.support:percent:$rootProject.supportLibraryVersion",
"com.Android.support:appcompat-v7:$rootProject.supportLibraryVersion",
"com.Android.support:mediarouter-v7:$rootProject.supportLibraryVersion",
"com.google.Android.gms:play-services-base:$rootProject.playServicesVersion",
"com.google.Android.gms:play-services-cast:$rootProject.playServicesVersion",
"com.google.Android.gms:play-services-gcm:$rootProject.playServicesVersion",
"com.google.Android.gms:play-services-analytics:$rootProject.playServicesVersion",
...
'com.newrelic.agent.Android:android-agent:4.265.0',
'com.Android.support:multidex:1.0.0'
compile 'com.squareup.dagger:dagger:1.2.1'
}
apply plugin: 'com.google.gms.google-services'
私は指示に従いました ここ 数回。私もリリース構成を使用しているので、applicationIdSuffixが問題になる理由はありません。また、com.my.pacakageは、私のpacakge名の代用にすぎません。この問題を解決するにはどうすればよいですか?
問題は実際には私の設定ではなくNewRelicにありました。私はそれを削除し、BuildTypesを使用していたので この回答 に従いました。これで、期待どおりにコンパイルされます。
すべてのフレーバー(リリースと開発など)にgoogle-services.json
を提供する必要があります
単一のgoogle-services.json
は、すべてのフレーバーのjson/dataを持つことができます。 Google Developers Consoleに移動し、google-services.json
ファイルを再生成します
更新
フレーバー用に個別のgoogle-services.json
ファイルを作成することもできます
https://developers.google.com/Android/guides/google-services-plugin
私の場合、それは私の問題を解決しました
...
"client": [
{
"client_info": {
"mobilesdk_app_id": "yourid",
"Android_client_info": {
"package_name": "ru.example.app"
}
},
...
package_nameはapplicationIdと同じである必要があります
defaultConfig {
applicationId "ru.example.app"
minSdkVersion 15
targetSdkVersion 23
...
}
おそらく少し遅れましたが、私も同様の問題を抱えていました。
これは、何らかの理由でアプリをFirebaseアナリティクスに最初に接続したときに発生し、「デバッグ」フレーバーしか取得しませんでした。
Firebaseにログインし、コンソールに移動して関連するプロジェクトを選択してから、手動で「リリース」フレーバーを追加する必要がありました。
次に、Android Studio(FirebaseからStudioにjsonファイルを自動的に更新してダウンロード)でFirebaseに再接続し、アプリを再コンパイルして動作しました。