2017-08-15 3 views
10

我試圖在IntelliJ Idea中將google play服務添加到我的libGDX項目中。我按照設置指南在這裏:https://developers.google.com/android/guides/setup無法解決:com.google.android.gms:在IntelliJ Idea中使用gradle播放服務

這看起來非常簡單。我只是說那行我在相應部分的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' 
    } 
} 

然後我嘗試同步我的想法gradle這個項目只是爲了得到那個「無法解析」錯誤。

那麼,安裝指南還說:「確保每次更新Google Play服務時都更新此版本號」,但問題在於它幾乎不可能找到該版本號:我的Google Play服務SDK版本到Android SDK管理器是「43」,到目前爲止,我一直無法關聯這樣的「11.2.0」或任何典型的版本字符串與「43」版本號。並不是說安裝指南對此沒有提到。

無論如何,我已經嘗試了很多與此相關的問題無濟於事。具體來說,我要指出的是,我有我的Android SDK及時更新,我敢肯定,這是它正在使用的理念一(我已經三檢查這個......):

Android SDK Manager Project Structure

我使用API​​級別26,但無論如何其他定義使用Android SDK的相同目錄。此外,我沒有在這檯筆記本電腦上安裝任何其他的android SDK,所以毫無疑問,Idea只使用那一個。

任何想法都是值得歡迎的。

提前致謝!

+1

我不明白'應用插件:「com.google.gms.google-services'' –

+0

我沒有看到它無論是在建立谷歌播放服務指南。這是從哪裏來的? –

+0

JFTR,用11.0.0而不是11.2.0代替版本號似乎有訣竅,但我仍然在這裏做一些測試,所以我不會將它作爲答案發布,直到我確信。 –

回答

46

我剛剛用11.0.0替換了11.2.0版本,然後它似乎工作正常,所以必須表示11.2。0未包含在最新的Android SDK中。

因此,所有可用的零散文件掙扎後,我達到了純淨的機會,這文件(我猜它不是由谷歌索引足夠高): https://developers.google.com/android/guides/releases

我從那裏報價:

Highlights from the Google Play services 11.2 release. Google Play services dependencies are now available via maven.google.com

現在,即使這不一定意味着它們不再可用於下載的SDK,看起來實際上是這樣。

無論如何,將google()添加到我的build.gradle中並不起作用(未找到,未定義或其他...),所以我使用了另一種方法,在此文檔中找到了引用前一個的方法:

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

我修改的build.gradle文件中添加該行allprojects /存儲庫,如:

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' 
    } 
} 

這兩行足以使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橫幅廣告。

我花了好幾個小時的時間思考,這讓我懷疑我們最近使用的所有這些樓宇自動化系統是否值得他們增加的額外負載。

我的意思是,五年前我第一次必須將Admob添加到應用程序中,我只需要下載一個.jar文件並將其放在我的項目上的一個目錄中。這是非常明顯的,整個過程,從谷歌搜索「如何在我的Android項目中設置Admob」讓我的應用程序顯示Admob橫幅只需幾分鐘。我會把它留在這裏,因爲這不是這種辯論的場所。

儘管如此,我希望我自己的經驗對其他人有用。

+4

我有一種感覺這將是很好的在接下來的幾周內訪問了答案。 – jdv

+1

夢幻般的答案。謝謝! –

+1

Thanks @Fran ...你是最後期限的保護者 – Mushroomzier

6

Google Play服務SDK位於Google Repository之內。

  1. Start Intellij IDEA。

  2. 在工具菜單上,單擊Android> SDK管理器。

  3. 更新了Android SDK管理器:單擊SDK工具,擴大支持庫,選擇谷歌庫,然後單擊確定。

當前谷歌存儲庫版本是57

更新同步你的項目後。

編輯

11.2.0版本,我們已經使用谷歌的maven回購所以加在倉庫標籤谷歌行家回購的鏈接。檢查來自here的發佈說明。

allprojects { 
    .. 
    repositories { 
    ... 
     maven { 
      url 'https://maven.google.com' 
      // Alternative URL is 'https://dl.google.com/dl/android/maven2/' 
     } 
    } 
} 
+0

Google Repository已安裝。我也要添加一個截圖。 –

+0

也許你指的是錯誤的SDK。在File> ProjectStructure中檢查它,並確保你有正確的SDK。 – Aryan

+0

從這個問題引用自己:「我必須指出,我的Android SDK已經正確更新,我確定它是Idea使用的那個(我已經對此進行了三重檢查...)」 。我要添加另一個截圖以避免更多的混淆,所以沒有人必須在我的這個話語上...... –

-1

我有這個問題。 我發現這個解決方案。 在Android Studio中打開文件菜單,然後轉到項目結構,在模塊應用中,轉到依賴關係選項卡,然後點擊+按鈕添加'com.google.android.gms:play-services:x.x.x'。

8

添加到您的項目級build.gradle文件:

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

它爲我

+0

請在發佈自己的之前閱讀以前的答案。 –

+0

@Fran Ohooo對不起! – Zakawat

相關問題