2016-12-03 53 views
0

我已经试了又试,并试图弄清楚这个问题了。我到处搜索,我还没有找到解决方案。我明白在这个主题上有很多论坛,但没有人帮助我想出一个解决方案。错误与谷歌API的Android应用程序利用MapActivity

我遇到的问题是,当我运行我的Android应用程序,在模拟器,为地图区域出现只与灰瓦。我在网上,这个问题很可能是谷歌API密钥阅读,但我试过多次的方式来产生它(用过Android Studio的终端获得SHA1,我使用的是Android工作室生成一个链接到谷歌,因此它可以自动创建钥匙)。

我希望有人能帮助我,我很绝望了!

这里是我的Activity类 包com.bignerdranch.android.taskmanager;

import android.os.Bundle; 

import com.google.android.maps.MapActivity; 

public class AddLocationMapActivity extends MapActivity { 

    public static final String ADDRESS_RESULT = "address"; 

    @Override 
    protected void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 
     setContentView(R.layout.add_location); 
    } 

    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 

    @Override 
    protected boolean isLocationDisplayed() { 
     return true; 
    } 

} 

这是布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <TextView 
     android:id="@+id/location_title" 
     .../> 

    <EditText 
     android:id="@+id/task_address" 
     .../> 

    <Button 
     android:id="@+id/map_location_button" 
     .../> 

    <com.google.android.maps.MapView 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/map_location_button" 
     android:layout_above="@+id/use_this_location_button" 
     android:clickable="true" 
     android:apiKey="AIza.................................." /> 

    <Button 
     android:id="@id/use_this_location_button" 
     .../> 

</RelativeLayout> 

那么,这是清单文件:

?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.bignerdranch.android.taskmanager"> 

    <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="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <application 
     android:name=".TaskManagerApplication" 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="AIza..........................." /> 
     <activity android:name=".ViewTasksActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 

       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
     <activity android:name=".AddTaskActivity" 
        android:text="@string/add_task"/> 
     <activity android:name=".AddLocationMapActivity" 
        android:text="@string/add_location_to_task"/> 

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

</manifest> 

随后的build.gradle文件:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 'Google Inc.:Google APIs:24' 
    buildToolsVersion "24.0.2" 

    defaultConfig { 
     applicationId "com.bignerdranch.android.taskmanager" 
     minSdkVersion 16 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.2.1' 
    compile 'com.google.android.gms:play-services-maps:10.0.1' 
    compile 'com.google.android.gms:play-services-location:10.0.1' 
} 

最后一点,这是由Monito生成的r:

12-02 22:37:10.351 22387-22537/com.bignerdranch.android.taskmanager W/System.err: IOException processing: 26 
12-02 22:37:10.351 22387-22537/com.bignerdranch.android.taskmanager W/System.err: java.io.IOException: Server returned: 3 
12-02 22:37:10.352 22387-22537/com.bignerdranch.android.taskmanager W/System.err:  at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115) 
12-02 22:37:10.352 22387-22537/com.bignerdranch.android.taskmanager W/System.err:  at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473) 
12-02 22:37:10.352 22387-22537/com.bignerdranch.android.taskmanager W/System.err:  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117) 
12-02 22:37:10.352 22387-22537/com.bignerdranch.android.taskmanager W/System.err:  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994) 
12-02 22:37:10.352 22387-22537/com.bignerdranch.android.taskmanager W/System.err:  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702) 
12-02 22:37:10.352 22387-22537/com.bignerdranch.android.taskmanager W/System.err:  at java.lang.Thread.run(Thread.java:818) 

我将永远不会满足于能帮助我解决这个问题的人! Grey tiles instead of map

回答

0

您使用com.google.android.maps.MapView的地图是Google Map API的一个版本。不幸的是,它被正式弃用。

您应该使用的Google Maps API的新版本,这是第2版

下面是Google Map V2

+0

教程这是我的问题!谢谢!但是,您是否有任何关于如何将此特定代码“翻译”到V2的指示? – AlwaysWin

+0

V2版本是如此不同,我在答复中增加了一个教程,只要按照这 –

相关问题