0

это последний код проекта. Я следую всем вашим шагам https://blog-emildesign.rhcloud.com/?p=435, но мое приложение остановлено.Google maps android app показывает серые сетчатые плитки

main.java

package com.example.halkbank; 

    import android.os.Bundle; 
    import android.app.Activity; 
import android.view.Menu; 
import android.support.v4.app.FragmentActivity; 

public class GoogleMaps extends FragmentActivity { 

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

} 

main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".GoogleMaps" > 

<fragment 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.halkbank" 
    android:theme="@android:style/Theme.NoTitleBar" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 


<permission android:name="com.example.halkbank.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> 
<uses-permission android:name="com.example.halkbank.permission.MAPS_RECEIVE"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<uses-feature 
android:glEsVersion="0x00020000" 
android:required="true"/> 


    <application 

     <application 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name"> 
      <uses-library android:name="com.google.android.maps" /> 

      <activity 
     android:name="com.example.halkbank.GoogleMaps" 
     android:label="@string/title_activity_google_maps" 
     android:theme="@android:style/Theme.NoTitleBar" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 

     <meta-data 
android:name="com.google.android.maps.v2.API_KEY" 
android:value="api key" /> 
    </application> 

</manifest> 

и printscreens моих библиотек

http://s22.postimg.org/66m62oxk1/image.png

Что вы имеете в виду? где моя ошибка ??

ответ

3

Несмотря на то, что использование MapView со старым ключом API должно по-прежнему работать, оно было недавно устарело. (source)

Вы должны использовать Google Maps Android API v2, который добавляется к приложениям с MapFragment. Узнайте больше об этом в documentation.

Попробуйте добавить карту в приложение в соответствии с учебным пособием в документации, а затем задайте новый вопрос, если это не сработает.

0

Вы пытаетесь использовать обе версии API Карт Google. Пока вы используете библиотеку android-support и библиотеку google-play-services, которые необходимы для API V2 в вашем коде, вы используете API V1.

Я думаю, что именно по этой причине вы не видите карту, вы, вероятно, произвели ключ для API V2 и попытаетесь использовать его в API V1.

Первое, что вам нужно сделать, это перевести код API V2 как API V1, как уже было сказано, устарел и устарел.

Теперь более понятно, что это означает, что вы должны будете удалить это:

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

, как он относится к API V1.

Далее вы должны будете получить новый ключ API V2, если вы еще не сделали это, вы можете использовать это руководство, чтобы сделать это:

Google Maps API V2 Key

, а затем изменить код Java от MapActivity и MapView код простого Activity или FragmentActivty и MapFragment или SupportMapFragment respectivly зависимости для какой платформы разработки приложения, вы можете получить представление о том, как начать использовать данное руководство:

Google Maps API V2

Вы забыли изменить имя действия в вашем файле манифеста от:

<activity 
      android:name="com.example.halkmaps.MainActivity" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

To:

<activity 
      android:name="com.example.halkmaps.GoogleMaps" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
+0

Emil я сеял вашу ссылку и следовать всем этим шагам снова, но на end mobile сообщите мне, что приложение остановилось:/ – user2440666

+0

опубликуйте свой вывод logcat в теле вопроса .. –

+0

спасибо большое emil, pls см. logcat выше, я буду ждать вашего ответа :) – user2440666

Смежные вопросы