2

これが私のbuild.gradleファイルです。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.1'
        classpath 'com.google.gms:google-services:2.1.2'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ここに別のものがあります

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"
    defaultConfig {
        applicationId 'com.example.app'
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
    compile 'com.android.support:recyclerview-v7:24.2.1'
    compile 'com.android.support:cardview-v7:24.2.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    //compile 'com.google.firebase:firebase-core:9.8.0'
    compile 'com.google.firebase:firebase-ads:9.8.0'
    compile 'com.google.firebase:firebase-crash:9.8.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha9'
    compile project(path: ':standOut')
}

apply plugin: 'com.google.gms.google-services'

Gradle Sync は正常に動作しますが、アプリを実行しようとすると次のエラーが表示されます

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/measurement/AppMeasurementService.class

classpath 'com.google.gms:google-services:2.1.2'行を変更してclasspath 'com.google.gms:google-services:3.0.0'gradleファイルを同期すると、アプリを実行できますが、実際のデバイスで実行すると、このエラーが発生します。

E/FirebaseCrash: Failed to initialize crash reporting: com.google.android.gms.internal.zztl$zza: No acceptable module found. Local version is 0 and remote version is 0.

後でわざとアプリをクラッシュさせるために何かをしたときに、クラッシュ レポートが表示されません。しかし、Samsung Galaxy S3 Mini で同じアプリを実行してアプリをクラッシュさせると、クラッシュ レポートが表示されます。

最初のデバイスのプレイ サービスのバージョンは 9.4 で、Samsung では 9.8 です。バージョン 3.0.0 の Google サービス プラグインを使用すると、Samsung では動作するのに他のデバイスでは動作しないのはなぜですか (他の 2 つのデバイスでアプリを実行しようとしたところ、どちらでも動作しませんでした)。

duplicate entryプラグイン バージョン 2.1.2 を使用すると、このエラーが発生するのはなぜですか? また、jcenter でプラグインのバージョンを確認しました。バージョン 2.1.2 は 2016 年 6 月 3 日、3.0.0 は 2016 年 5 月 18 日です ( https://bintray.com/android/android-tools/com.google.gms.グーグルサービス)。では、どのバージョンが最新で、どのバージョンを使用すればよいのでしょうか?

この行が必要だと思いますかcompile 'com.google.firebase:firebase-core:9.8.0'。私はそれの有無にかかわらずやろうとしましたが、違いはないようです。

4

1 に答える 1

1

デバイスのgoogle play servicesバージョンは、使用されているライブラリのバージョンよりも低くすることはできません。Google サービス プラグインは、バージョン 9.8 をダウンロードしました。Samsung ではバージョン 9.8 でクラッシュ レポートが機能しますが、他のデバイスではバージョン 9.4 で機能しませんでした。google play servicesこれは、9.8 より前のバージョンのユーザーからクラッシュ レポートを取得できないことを意味するため、間違っています。

プラグイン バージョン 2.1.2 で firebase クラッシュ レポートを機能させる方法を見つけようとしましたが、バージョン 3.0.0 を使用した場合はできませんでした。バージョン 3.0.0 が進むべき道のようですが、なぜ最新バージョンが 2.1.2 なのか不思議です。

バージョン 3.0.0 に切り替えて、デバイスの再生サービスをバージョン 9.8 に更新すると、すべてが機能しました。

于 2016-10-30T01:22:49.317 に答える