2017-08-15 99 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

相关问题