【问题标题】:Embedding play-services when using android-sdk-plugin+sbt使用 android-sdk-plugin+sbt 时嵌入播放服务
【发布时间】:2014-04-08 20:25:13
【问题描述】:

我有一个 Scala Android 应用,使用 SBT 和 android-sdk-plugin 构建。

我需要包含 Google play-services 库,以使用 Google Maps API v2。它包含资源和代码。

阅读the android-sdk-plugin doc后,我看到了这个:

Using the google gms play-services aar:

libraryDependencies +=
  "com.google.android.gms" % "play-services" % "3.1.36"

我已经这样做了,但是当我通过 sbt 编译我的应用程序时,我收到了这个错误: AndroidManifest.xml:34:错误:错误:找不到与给定名称匹配的资源(在“值”处,值为“@integer/google_play_services_version”)

对我来说,这是不包括播放服务资源的明显症状。它们必须从 AndroidManifest.xml 中引用:

<application android:name="...">
  <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
  ...
</application>

使用 Gradle,我没有遇到这个问题,使用相同的 AndroidManifest.xml 和依赖项设置。

我也尝试过使用android-plugin 的方式来做这件事,但没有成功。 android-sdk-plugin 不理解 aarlib() 语法。

使用播放服务的正确方法是什么?

【问题讨论】:

    标签: android google-maps scala sbt


    【解决方案1】:

    最后是因为没有正确指定正确的版本。

    我用过这个:

    "com.google.android.gms" % "play-services" % "4.+"
    

    而不是这个:

    "com.google.android.gms" % "play-services" % "4.2.42"
    

    .+ 符号不够聪明:-(

    您可以通过查看此文件夹的内容来列出可用版本:

    android-sdk/extras/google/m2repository/com/google/android/gms/play-services/
    

    【讨论】:

    • 你能发布 che Build.scala 吗?
    • 我使用的是 build.sbt。相关部分已显示。
    【解决方案2】:

    就我而言,我必须前往 SDK 管理器并安装“Google Repository”以及“Android Support Repository”。

    在此之前,$ANDROID_HOME/extras/google/m2repository/ 不存在。

    我也加了

    libraryDependencies += "com.google.android.gms" % "play-services" % "4.4.52"
    

    到我的build.sbt,因为我是从早期版本升级的,所以必须删除lib/google-play-services.jarlib/android-support-v4.jar,否则它们会被包含两次。

    【讨论】:

      猜你喜欢
      • 2014-05-02
      • 2011-12-17
      • 2014-01-02
      • 2021-10-25
      • 2015-11-17
      • 2017-02-13
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      相关资源
      最近更新 更多