web-dev-qa-db-ja.com

解決できませんでした:com.google.Android.gms:gradle付きIntelliJ Ideaのplay-services

IntelliJ IdeaのlibGDXプロジェクトにGoogle Playサービスを追加しようとしています。私はここでセットアップガイドに従っています: https://developers.google.com/Android/guides/setup

これはかなり簡単に見えます。対応するセクションのbuild.gradleにこれらの行を追加したので、状況は次のようになります。

project(":Android") {
    apply plugin: "Android"
    apply plugin: 'com.Android.application'

    configurations { natives }

    dependencies {
        compile project(":core")
        compile "com.badlogicgames.gdx:gdx-backend-Android:$gdxVersion"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
        compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion"
        natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
        natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
        natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
        compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
        natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
        compile 'com.google.Android.gms:play-services:11.2.0'
    }
}

それから、Ideaで自分のgradleプロジェクトを同期させて、 "Failed to resolve"エラーを表示させます。

さて、セットアップガイドには「Google Playサービスが更新されるたびに必ずこのバージョン番号を更新するように」と書かれていますが、問題はそのバージョン番号を見つけるのがほとんど不可能だということです。 managerは "43"で、これまでのところ "11.2.0"などの一般的なバージョン文字列を "43"バージョン番号と関連付けることはできませんでした。セットアップガイドがそれについて何も言っていないというわけではありません。

とにかく、私はこれに関連したたくさんの質問から無駄までたくさんのことを試みました。具体的には、私は自分のAndroid SDKが正しく更新されていることを指摘しなければなりません、そしてそれはそれがIdeaによって使用されているものであると確信しています。

Android SDK Manager Project Structure

私はAPIレベル26を使用していますが、とにかく他の定義はAndroid SDKのためにまったく同じディレクトリを使用します。さらに、このラップトップには他のAndroid SDKがまったくインストールされていないので、Ideaがその1つだけを使用していることに疑問はありません。

どんなアイデアも歓迎です。

前もって感謝します!

64
Fran Marzoa

バージョン11.2.0を11.0.0に置き換えたところ、正常に動作するように見えたので、11.2.0が最新のAndroid SDKに含まれていなかったことを意味していました。

だから、散在して利用可能なすべてのドキュメントに苦労した後、私はこのドキュメントに偶然にもたどり着きました(Googleでは十分に高いインデックスが付けられていないと思います): https://developers.google.com/Android/guides/releases

そこから引用します。

Google Play services 11.2リリースからのハイライトGoogle Playサービスの依存関係がmaven.google.comから利用可能になりました

しかし、それが必ずしもダウンロードされたSDKで利用できなくなるという意味ではない場合でも、実際にそうであるように思われます。

とにかく、私のbuild.gradleにgoogle()を追加してもうまくいきませんでした(見つかりません、未定義、その他なんでも…)ので、このドキュメントで紹介した別のアプローチを使用しました。

https://developer.Android.com/studio/build/dependencies.html#google-maven

次のようにbuild.gradleファイルを修正して、その行をallprojects/repositoriesに追加しました。

allprojects {
...
    repositories {
...
        maven { url "https://maven.google.com/"}
    }
}

そして同じbuild.gradleファイルのAndroidセクションにもあります。

project(":Android") {
...
    dependencies {
...
        compile 'com.google.Android.gms:play-services-ads:11.2.0'
    }
}

この2行でGradleを問題なく同期させることができました。私はデフォルトで私のlibGDXプロジェクトにすでに追加されているものとは別のプラグインを追加する必要はありませんでした。

その後、私はいくつかの異なるエラーを受け取りましたが、Gradleや依存関係については何も起こりませんでした。簡単に言うと、JFTR:

最初に、私は8のminSdkVersionを持っていました。それを14に上げることで解決しました。私は14以下のすべてのデバイスをサポートすることなく生きることができたと思います。

第二に、私は参照のdex上限に問題がありました。私は以前にこの問題に直面したことはありませんが、私が使用したソリューションに既に気付いているかもしれません。 'com.google.Android.gms:play-services'全体をコンパイルする代わりに 'com.google.Android.gms'だけを使用しました。 :play-services-ads 'これが私が現在興味を持っているAPIです。このような解決策が役に立たないかもしれない他の特定のケースでは、このドキュメントはより良い洞察を提供するでしょう: https://developer.Android.com/studio/build/multidex.html

第三に、それでも私はこの「ジャンボ」の問題がここに記述され答えられたのを手に入れた: https://stackoverflow.com/a/26248495/1160360

以上です。今のところ、すべてが構築され、私のゲームはようやくそれらのAdmobバナーを示しています。

私はこれに何時間も費やした、と考え、最近使用しているこれらすべてのビルディングオートメーションシステムがそれらに追加の負荷をかける価値があるかどうか私は疑問に思う。

つまり、5年ほど前にAdmobをアプリに追加しなければならなかったのは、初めて、.jarファイルをダウンロードしてプロジェクトのディレクトリに配置するだけでした。私のアプリにAdmobのバナーを表示させるための「GoogleのAndroidプロジェクトでAdmobを設定する方法」というグーグルからのプロセス全体が、ほんの数分で完了しました。これはそのような種類の議論の場ではないので、私はここにそれを残すつもりです。

それにもかかわらず、私は私自身の経験がさらに他の誰かに役立つことを願っています。

76
Fran Marzoa

プロジェクトレベルのbuild.gradleでjcenter()google()の前に置くと問題が発生しました。順序を変更してbuild.gradleのgoogle()の前にjcenter()を置くと問題は解決しました

これが私の最後のbuild.gradleです。

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

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.1.3'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

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

これをプロジェクトレベルのbuild.gradleファイルに追加してください。

repositories {
    maven {
        url "https://maven.google.com"
    }
}

それは私のために働いた

14
Zakawat

私はしばらくの間Android Studioを使用しておらず、アップデートを知らなかった後何時間もこの問題を解決しようとしました。

google()が次のようにrepositoriesに入る最初の項目であることが重要です。

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

どういうわけかgoogle()jcenter()に続く2番目の項目だったので、すべてがめちゃくちゃになって動作しませんでした。多分これは誰かに役立ちます。

11
AlexioVay

Google PlayサービスSDKはGoogle Repository内にあります。

  1. Intellij IDEAを起動します。

  2. [ツール]メニューで、[Android]> [SDKマネージャ]の順にクリックします。

  3. Android SDK Managerを更新します。 SDK Tools をクリックし、 Support Repository を展開し、 Google Repository を選択して、OKをクリックします。

現在のGoogleリポジトリのバージョンは57です。

更新後にプロジェクトを同期します。

_編集_

バージョン11.2.0から、Google Mavenリポジトリを使用するようになりましたので、リポジトリタグにGoogle Mavenリポジトリリンクを追加します。 here からリリースノートを確認してください。

allprojects {
     ..
     repositories {
     ...
        maven {
            url 'https://maven.google.com'
            // Alternative URL is 'https://dl.google.com/dl/Android/maven2/'
        }
     }
}
10
Aryan

最新の回答:

allprojects {
    repositories {
        google() // add this
    }
}

そしてgradleを4.1+に更新することを忘れないでください(gradle-wrapper.properties内):

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip

ソース: https://developer.Android.com/studio/build/dependencies.html#google-maven

6
Noureddine AMRI

私は次のコードを置き換えるために次の解決策を見つけました

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

buildscript {

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

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

それは私のためにうまくいきます

3
user3318703

最新のGoogle Play Services 15.0.0では、このようにプレイサービス全体を含めるとこのエラーが発生します

implementation 'com.google.Android.gms:play‐services:15.0.0'

代わりに、Google Driveのように詳細サービスを指定する必要があります

com.google.Android.gms:play-services-drive:15.0.0
2
Alen Lee

同じ問題を抱えていて、クレードルのオフラインモードを無効にすることで解決しましたが、無効にしたときのことは思い出せませんでした。

解決策は次のとおりです。

AndroidスタジオでGradle 'offline mode'を無効にするには? [複製]

1
Lily bentham

グラドル設定を確認してください。オフライン作業に設定されている可能性があります

1
MJahongir

私はその問題を抱えていました。そして私はこれが解決するのを見つけました。 Android Studioで、[ファイル]メニューを開き、[プロジェクト構造]、[モジュールアプリ]の[依存関係]タブに移動し、[+]ボタンをクリックして「com.google.Android.gms:play-services:x.x.x」を追加できます。

0
Amirhosein

私もこのエラーが出ましたが、それは別の理由によるものです。変数としてバージョン番号を指定しようとしたときにタイプミスをしたことがわかります。

dependencies {
    // ...
    implementation "com.google.Android.gms:play-services-location:{$playServices}"
    // ...
}

私のプロジェクトのルートディレクトリのgradle.propertiesで変数playServicesを定義しました:

playServices=15.0.1

タイプミスは{$playServices}で、これは${playServices}を次のように言っているはずです。

dependencies {
    // ...
    implementation "com.google.Android.gms:play-services-location:${playServices}"
    // ...
}

これで問題は解決しました。

0
Michael Osofsky

これはおそらくあなたが正しい依存関係のバージョンを入力していないことです。ここから正しい依存関係を選択できます。

file>menu>project structure>app>dependencies>+>Library Dependency>select any thing you need > OK

あなたの必要性を見つけることができないならば、あなたは下からあなたのsdkを更新するべきです

ツール> Android> SDKマネージャ> SDKアップデート>必要なものを選択してください> OK

0