Windows上的Android工作室使用谷歌地图

时间:2015-03-09 14:40:35

标签: android windows google-maps android-studio

我有

compile 'com.google.android.gms:play-services:6.5.87'

在我的build.gradle模块:app中 和

<uses-library android:name="com.google.android.maps"
        android:required="true" />
<meta-data android:name="com.google.android.gms.version"
       android:value="@integer/google_play_services_version" />

在我的AndroidManifest.xml中的应用程序标记之间。

但我仍然在导入时出错

import com.google.android.maps.GeoPoint; 

上的类似错误
import com.google.android.gms.location.LocationClient; 

和其他此类进口。

Cannot resolve symbol 'maps'

我尝试清理构建,使缓存/重新启动无效。

我在某处读到这是Android地图和谷歌地图之间存在冲突的问题,您需要使用:

android {
compileSdkVersion "Google Inc.:Google APIs:21"

但这也给我一个错误

Error:Could not normalize path for file 'C:\Users\...\app\build\intermediates\mockable-Google Inc.:Google APIs:21.jar'.

文件名,目录名或卷标语法不正确

根据一个小搜索,因为它试图创建一个文件夹,其中:符号适用于mac / linux但不适用于Windows。

我可以将其改为

android {
compileSdkVersion 21

但是它并没有使用谷歌api的。我还没有找到另一种方法来修复我的代码。有谁可以帮助我或指出我正确的方向?

编辑:将播放服务更改为5. +(或以下任何内容)会给我一个不同的错误,即它似乎会覆盖主题。

C:...\app\build\intermediates\exploded-aar\com.google.android.gms\play-services\5.0.89\res\values\wallet_colors.xml
Error:(1) Attribute "theme" has already been defined

任何6或以上的意味着它找不到LocationClient。

2 个答案:

答案 0 :(得分:2)

您可以在清单中尝试使用此配置:

  <!-- Creating Permission to receive Google Maps -->

    <permission
        android:name="com.yelpmeout.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>
    <uses-permission android:name="com.yelpmeout.permission.MAPS_RECEIVE"/>

    <!-- Maps API needs OpenGL ES 2.0. -->
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_GPS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>



........



  <!-- Google Maps Fragment API Key Data -->
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="YOUR_KEY" /> // dont forget to add your key
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="YOUR_ACTIVITY" /> // dont forget to add your main activity here
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"  />

这是你的傻瓜:

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
}

dependencies {
    compile 'com.google.maps:google-maps-services:0.1.3'
    compile 'com.google.android.gms:play-services:6.5.87'

}

它适用于我,它也应该适合你。

希望它有所帮助!

答案 1 :(得分:0)

我想你错过了:

<uses-library
    android:name="com.google.android.maps" />

在AndroidManifest.xml中。尝试添加它,看它是否有效。