更新到修订版30后,缺少“ <sdk> / extras / google / google_play_services / libproject”文件夹


75

我使用Android SDK Manager将Google Play服务版本从版本29更新到了版本30,但是更新后目录"<sdk>/extras/google/google_play_services/libproject"消失了,仅保留了目录“ docs”和“ samples”。

我曾尝试卸载并重新安装几次,但总是碰巧错过目录“ libproject”。

有人有更新的问题吗?

我正在使用Debian Linux 8.4(jessie),尽管不认为它与问题有关。

Android SDK Manager屏幕

google_play_services目录屏幕


1
在版本30到达之前,我在许多游戏中使用版本29正常运行,但是当版本30到达版本29无法正常工作时,则我更新到版本30,现在广告再次正常运行,似乎版本29和波纹管不再工作,我使用unity3d顺便说一下
瑜伽士

@瑜珈 当我这样做时,我在这两个错误消息上都找不到资源:'@android:style / Theme.Holo.Light.DialogWhenLarge.NoActionBar'和'@android:style / Theme.Material.Light.DialogWhenLarge.NoActionBar'。您是如何克服这个问题的?
安德鲁·S

Answers:


62

看起来Google刚刚将Google Play服务分解为多个库。<sdk>/extras/google/m2repository/com/google/android/gms如果您还Google Repository通过SDK Manager进行了更新,则会在中找到它们。

各个库采用aar格式,因此jar,如果要这样做,则必须解压缩自己。


2
我如何在Eclipse中使用它们。因为这个原因,我有一个旧项目失败了。
安德鲁·S

14
步骤如下:1.将.aar重命名为.zip 2.解压缩文件3.创建一个'libs'文件夹,并将classes.jar文件移动到其中。4.使用New-> Project->将项目导入Eclipse。现有源代码的Android项目5.转到项目的属性,并设置“构建目标”和“ Is库”标志
CigogneEveillée16年

10
我在哪里可以找到有关此信息?我觉得可笑的是google做到这一点而没有让人们知道...更不用说,他们还没有使用此信息更新他们的网站...
Vancert Staff

1
@CigogneEveilléeclasses.jar文件中的类被混淆并重命名,无法导入AdListener,AdRequest,InterstitialAd等类
Smeet 2016年

6
2016年7月16日:Google Play服务31,没有lib项目,并且使用9.2.0、9.2.1的.aar都不会提供要导入的类。如果要使用更新的gms-ads库并也添加所有必需项目的库以使其能够导入类,请参阅此文章,但仍会导致XML格式的com.google.android.gms.ads.AdView膨胀错误。 ......如果您仍然想使用Eclipse,那么最终的解决方案又回到了28或29,这对于Android Devs而言
mfaisalhyder

45

我正在Eclipse中处理一个旧项目,并且以与其他方式稍有不同的方式解决了该问题。对我而言,使用Google Play服务修订版29中的项目时,遇到了各种无法解决的依赖关系问题。例如,它需要兼容性库v4,因此我将其导入,但即使这样它也找不到一些必需的资源。

但是,我能够使用修订版28而不出现此类问题,并将我的应用程序的最低版本设置为ICS。下面是版本28的链接。下载它,解压缩,然后将libproject文件夹解压缩到通常在删除之前的位置。

按常规方式将项目导入Eclipse(确保选择了复制文件),一切都会好起来。

https://dl-ssl.google.com/android/repository/google_play_services_8298000_r28.zip


3
谢谢,我已经花了4个小时尝试其他解决方案,这是唯一有效的解决方案。永远感激:)
芭芭拉(Barbara)PM

1
谢谢你,先生!可惜Google的指示无效。
user1010160 '16

@Andrew S您的解决方案对我有用,谢谢。我在回答中提供了有关如何实施该解决方案的更多详细信息和屏幕截图,以防万一可以帮助其他人:stackoverflow.com/questions/42979484/…
Jaime Montoya

@Jamie_montoya我很高兴您发现它很有用,但需要将此问题标记为重复此问题。
安德鲁·S


4

m2repository文件夹包含用于android studio的aar文件。如果您查看示例文件夹并打开一些示例应用程序的project.properties文件,您将看到示例应用程序仍引用google-play-services_lib。这肯定是由Google修复的,我也看到有人抱怨展示广告问题,所以也许他们很快就会回来更新。


1
@jefferson_amarals,也许您是正确的。他们之所以可能删除它,可能是因为集成Firebase可能导致65k参考限制。这就是为什么我们首先要有单独的API库。如果您仍然需要lib,则此人创建了一个eclipse lib项目,该项目将jar文件集成到新的play服务中,并且相同的方法也可以用于其他API: github.com/dandar3/android-google-play-services-基地 此外,他写了一篇关于如何从AAR这里提取需要的jar文件小教程:plus.google.com/112240505564011894075/posts/6zpkvmVtGhU
萨瓦Mikalački

4

我在Google Mobile Ads SDK开发者论坛上发布了一个与此有关的问题。总结答案中的步骤(来自Mobile Ads SDK团队Veer Busani):


我们绝不建议您重命名/编辑Android SDK的任何部分。如果您发现任何问题,请告诉我们,我们将进行调查。至于您的移动广告/ Unity / Android集成,我一定会为您提供帮助。如果您使用的是Google Play服务版本30.0(v 9.0),请按照以下步骤操作-

  • 新建一个项目,然后导入Mobile Ads Unity程序包
  • 复制我们的演示脚本,创建一个新的空GameObject并将脚本添加为组件。
  • 右键单击Assets> PlayServicesResolver文件夹,然后选择Google Play服务>解决客户端Jars
  • Unity中的GMS版本30存在一个已知问题。要为Android进行构建,您需要选择Assets> Plugins> Android> firebase-common-9.0.0.aar文件,然后在Unity Inspector中,在Platform for Plugins部分下取消选择Android
  • 最后,在播放器设置中编辑捆绑包标识符,然后将出色的项目部署到Android设备上。

这工作了。


移动添加与地图服务有什么关系?如果要使用地图的应用程序,这似乎是一个非常复杂的过程。
安德鲁·S

1
@AndrewS:您的评论是此页面上对“地图”的唯一引用-问题​​和当前答案都不是特定于地图的。这与Google Play服务有关,这是移动广告支持(除其他事项外)所必需的。安装GPS的目的并不重要……将其安装并正常运行是最终目标。此答案是根据支持论坛的官方回复总结的,因此,任何麻烦之处都归功于SDK不幸在Google-I / O之后推出。
逐渐风行

我想那一年足够公平。我认为这是一个Android为中心的问题,但我想它适用于统一也和一般还添加了..
安德鲁小号
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.