2014-12-17 28 views
12

tôi sau Google Maps dành cho Android "bắt đầu" tutorial- https://developers.google.com/maps/documentation/android/Không thể giải quyết biểu tượng 'OnMapReadyCallback' Issue

Nhưng tôi tình cờ gặp một lỗi "" Không thể giải quyết biểu tượng 'OnMapReadyCallback', mà có thể là một sửa chữa dễ dàng, nhưng đang cản trở tôi. Đây là mã tôi đã cho báo cáo nhập của tôi cho các ứng dụng:

import android.app.Activity; 
import android.support.v4.app.FragmentActivity; 
import android.app.FragmentManager; 
import android.app.FragmentTransaction; 
import android.os.Bundle; 
import android.support.v4.app.ActionBarDrawerToggle; 
import android.support.v4.widget.DrawerLayout; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class main extends FragmentActivity implements OnMapReadyCallback { 


    // Within which the entire activity is enclosed 
    DrawerLayout mDrawerLayout; 

    // ListView represents Navigation Drawer 
    ListView mDrawerList; 

    // ActionBarDrawerToggle indicates the presence of Navigation Drawer in the action bar 
    ActionBarDrawerToggle mDrawerToggle; 

    // Title of the action bar 
    String mTitle=""; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

Android Manifest:

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

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="19" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 




     <activity android:name="temp.com.temp.Login" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".main" 
      android:label="@string/app_name" > 
     </activity> 

     <activity 
      android:name="temp.com.temp.Register" 
      android:label="@string/app_name" > 
     </activity> 

     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="AIzaSyBCCBIgQMw3XgIK4eQHndGHHlzvcT7vgwQ"/> 
    </application> 
    <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"/> 
    <!-- The following two permissions are not required to use 
     Google Maps Android API v2, but are recommended. --> 
    <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"/> 
</manifest> 

chính Layout File:

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<!-- The main content view --> 
<FrameLayout 
    android:id="@+id/content_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
<!-- Google Maps --> 
    <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:name="com.google.android.gms.maps.MapFragment"/> 
<!-- The navigation drawer --> 
<ListView android:id="@+id/drawer_list" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="0dp" 
    android:background="#111"/> 
</android.support.v4.widget.DrawerLayout> 
+3

Có thể bạn đang sử dụng phiên bản Maps V2 cũ hơn. Nếu bạn đang sử dụng Android Studio, hãy thử 'compile 'com.google.android.gms: play-services-maps: 6.5.87'' trong phần đóng' dependencies' của bạn. – CommonsWare

+0

Hoàn hảo! Điều đó làm việc, cảm ơn rất nhiều CommonsWare !! – LoneProgrammingWolf

Trả lời

42

OnMapReadyCallback vừa xuất hiện trong một bản cập nhật gần đây vào SDK Maps V2. Nếu bạn muốn, bạn cần phải nâng cấp lên phiên bản đủ mới của SDK đó.

Người dùng Android Studio có thể chuyển sang compile 'com.google.android.gms:play-services-maps:6.5.87', từ the new Play Services granular dependencies, để nhận lớp học mới này và có thể giảm kích thước APK của họ dưới dạng lợi ích phụ.

+0

Gradle cho tôi 'không tìm thấy: com.google.android.gms: play-services-maps: 6.5.87'. Làm cách nào để giải quyết vấn đề này? – udiboy1209

+0

@ udiboy1209: Đảm bảo bạn đã cài đặt Kho lưu trữ Google mới nhất qua Trình quản lý SDK. – CommonsWare

+0

Tôi tìm thấy rằng sửa chữa ở nơi khác: P. Cảm ơn anyway cho sự giúp đỡ của bạn! – udiboy1209

Các vấn đề liên quan