web-dev-qa-db-ja.com

Gradle:プロジェクトの複数のバリエーション:myLibが消費者の属性と一致

私がmyLibを書いたライブラリはRemoteMessageからのFirebaseを使います、アプリ自体もFirebaseを使います。

グラドルを使用する4.7。 4.4.1でもこれに直面しています。

それを修正するには?

project.gradle

buildscript {

    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:3.3.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        mavenLocal()
    }
}

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

app.gradle

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.test.app"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

    dexOptions {
        preDexLibraries = false
        jumboMode = false
        javaMaxHeapSize "2048M"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    productFlavors {
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.Android.support:appcompat-v7:27.1.1'

    implementation 'com.google.Android.gms:play-services-gcm:12.0.1'
    implementation 'com.google.Android.gms:play-services:12.0.1'
    implementation 'com.google.firebase:firebase-core:12.0.1'
    implementation 'com.google.firebase:firebase-messaging:12.0.1'
    implementation 'com.google.firebase:firebase-crash:12.0.1'

    implementation project(":myLib")
}

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

myLib.gradle

apply plugin: 'com.Android.library'

Android {
    compileSdkVersion 27



    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.Android.support:appcompat-v7:27.1.1'

    implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.2'
    implementation 'com.j256.ormlite:ormlite-core:5.0'
    implementation 'com.j256.ormlite:ormlite-Android:5.0'

    implementation 'com.google.firebase:firebase-messaging:12.0.1'
}

testApp\myLib> gradle clean assembleDebugおよびtestApp\app> gradle clean assembleDebugからのエラー出力

プロジェクトの複数のバリエーション:myLibはコンシューマー属性と一致します。

  • 設定 ':myLib:debugApiElements'の亜種Android-aidl:
    • ArtifactType 'Android-aidl'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.api.attributes.BuildTypeAttr 'debug'が必須であり、互換性のある値 'debug'が見つかりました。
    • Com.Android.build.api.attributes.VariantAttr 'debug'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar'が必要で、互換性のある値 'Aar'が見つかりました。
    • 必要なorg.gradle.usage 'Java-api'と互換性のある値 'Java-api'が見つかりました。
  • 設定 ':myLib:debugApiElements'の亜種Androidクラス:
    • ArtifactType 'Android-classes'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.api.attributes.BuildTypeAttr 'debug'が必須であり、互換性のある値 'debug'が見つかりました。
    • Com.Android.build.api.attributes.VariantAttr 'debug'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar'が必要で、互換性のある値 'Aar'が見つかりました。
    • 必要なorg.gradle.usage 'Java-api'と互換性のある値 'Java-api'が見つかりました。
  • 設定 ':myLib:debugApiElements'の亜種Android-manifest:
    • ArtifactType 'Android-manifest'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.api.attributes.BuildTypeAttr 'debug'が必須であり、互換性のある値 'debug'が見つかりました。
    • Com.Android.build.api.attributes.VariantAttr 'debug'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar'が必要で、互換性のある値 'Aar'が見つかりました。
    • 必要なorg.gradle.usage 'Java-api'と互換性のある値 'Java-api'が見つかりました。
  • 設定 ':myLib:debugApiElements'の亜種Androidレンダリング文字列:
    • ArtifactType 'Android-renderscript'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.api.attributes.BuildTypeAttr 'debug'が必須であり、互換性のある値 'debug'が見つかりました。
    • Com.Android.build.api.attributes.VariantAttr 'debug'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar'が必要で、互換性のある値 'Aar'が見つかりました。
    • Org.gradle.usage 'Java-api'が必須で、互換性のある値 'Java-api'が見つかりました。
  • 設定 ':myLib:debugApiElements'のバリエーションjar:
    • ArtifactType 'jar'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.api.attributes.BuildTypeAttr 'debug'が必須であり、互換性のある値 'debug'が見つかりました。
    • Com.Android.build.api.attributes.VariantAttr 'debug'が見つかりましたが、必須ではありませんでした。
    • Com.Android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar'が必要で、互換性のある値 'Aar'が見つかりました。
    • 必要なorg.gradle.usage 'Java-api'と互換性のある値 'Java-api'が見つかりました。
81
theAnonymous

google-services gradleプラグインは、Google Play ServicesとFirebaseの15+で動作するように作られていますが、バージョン12.0.1で使用しています。

解決策は次のいずれかです。

編集1マルチモジュールアプリケーションでgoogle-services3.3を使うことに関する既知の問題 があります。これは、バグを修正する新しいバージョンがリリースされるまで、google-servicesから3.2.1へのダウングレードが唯一の選択肢である可能性があることを意味します。

編集24.0.1グラドルプラグインのgoogle-servicesバージョンで上記のバグが修正されました! (そしてバージョン4.0.2は、場合によっては発生したNPEも修正します)

ところで、FCMに移行する必要があります。GCMは、それほど遠くない将来は機能しなくなります。

86
Louis CAD

Google-services:3.3.0を使用すると、このエラーが発生しました。

プロジェクトの.gradleでclasspath 'com.google.gms:google-services:3.2.1'にダウングレードします。

それは問題を解決するはずです。

更新:現在のバージョンではおそらく発生しないはずです。

28
Henrique Monte

3.3.1へのアップグレード中に同様の問題に直面しました

3.2.1にダウングレードすることで修正しました

3.2.1でfirebaseバージョン≧15を使用できます

7
dddd2011

以下のステップは私のために働きました---

  1. Android/build.gradleファイルに行きます。
  2. jcentre()メソッドを検索してください。
  3. すべてのjcenter()メソッドをそのブロック内の一番下に移動します。
1
Akhilesh Sinha

私は過去数日で同様の問題に直面しました。

implementation 'com.google.Android.gms:play-services-auth:15.0.0'
implementation 'com.google.firebase:firebase-messaging:15.0.0'

解決策は、どちらかにダウングレードすることでした。

implementation 'com.google.Android.gms:play-services-auth:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'

またはGoogle Cloud Servicesを終了してFCMに完全にアップグレードすることを検討する

それらはあなたがそれを調べることができる異なるバージョン番号を持っていることに注意してください ここ

0
Poorya