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によって使用されているものであると確信しています。
私はAPIレベル26を使用していますが、とにかく他の定義はAndroid SDKのためにまったく同じディレクトリを使用します。さらに、このラップトップには他のAndroid SDKがまったくインストールされていないので、Ideaがその1つだけを使用していることに疑問はありません。
どんなアイデアも歓迎です。
前もって感謝します!
バージョン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を設定する方法」というグーグルからのプロセス全体が、ほんの数分で完了しました。これはそのような種類の議論の場ではないので、私はここにそれを残すつもりです。
それにもかかわらず、私は私自身の経験がさらに他の誰かに役立つことを願っています。
プロジェクトレベルの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
}
これをプロジェクトレベルのbuild.gradle
ファイルに追加してください。
repositories {
maven {
url "https://maven.google.com"
}
}
それは私のために働いた
私はしばらくの間Android Studioを使用しておらず、アップデートを知らなかった後何時間もこの問題を解決しようとしました。
google()
が次のようにrepositories
に入る最初の項目であることが重要です。
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
どういうわけかgoogle()
はjcenter()
に続く2番目の項目だったので、すべてがめちゃくちゃになって動作しませんでした。多分これは誰かに役立ちます。
Google PlayサービスSDKはGoogle Repository
内にあります。
Intellij IDEAを起動します。
[ツール]メニューで、[Android]> [SDKマネージャ]の順にクリックします。
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/'
}
}
}
最新の回答:
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
私は次のコードを置き換えるために次の解決策を見つけました
// 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
}
それは私のためにうまくいきます
最新の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
同じ問題を抱えていて、クレードルのオフラインモードを無効にすることで解決しましたが、無効にしたときのことは思い出せませんでした。
解決策は次のとおりです。
グラドル設定を確認してください。オフライン作業に設定されている可能性があります
私はその問題を抱えていました。そして私はこれが解決するのを見つけました。 Android Studioで、[ファイル]メニューを開き、[プロジェクト構造]、[モジュールアプリ]の[依存関係]タブに移動し、[+]ボタンをクリックして「com.google.Android.gms:play-services:x.x.x」を追加できます。
私もこのエラーが出ましたが、それは別の理由によるものです。変数としてバージョン番号を指定しようとしたときにタイプミスをしたことがわかります。
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}"
// ...
}
これで問題は解決しました。
これはおそらくあなたが正しい依存関係のバージョンを入力していないことです。ここから正しい依存関係を選択できます。
file>menu>project structure>app>dependencies>+>Library Dependency>select any thing you need > OK
あなたの必要性を見つけることができないならば、あなたは下からあなたのsdkを更新するべきです
ツール> Android> SDKマネージャ> SDKアップデート>必要なものを選択してください> OK