2014-11-05 62 views
-1

我嘗試創建一個簡單的項目,我只能添加一個簡單的項目,我只能顯示地圖,我會在下面的代碼中詳細介紹我的問題。Android Google Maps類沒有找到

這是我的Map.java代碼:

package com.example.maps; 

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 

public class Map extends FragmentActivity { 

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

} 

這是我activity_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" 
    tools:context=".Map" > 

    <fragment 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.google.android.gms.maps.SupportMapFragment" 
     tools:layout="@layout/maps" /> 

</RelativeLayout> 

這是我的清單:

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

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="20" /> 

    <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" /> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
    <!-- 
    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" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".Map" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

     <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" /> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="AIzaSyAqhSrLK9wFegbublRPJXKaHbDviXQSLyk" /> 
    </application> 

</manifest> 

最後,這是我的錯誤日誌:

11-05 11:21:59.252: E/AndroidRuntime(27109): FATAL EXCEPTION: main 
11-05 11:21:59.252: E/AndroidRuntime(27109): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.maps/com.example.maps.Map}: java.lang.ClassNotFoundException: Didn't find class "com.example.maps.Map" on path: /system/framework/com.google.android.maps.jar:/data/app/com.example.maps-1.apk 
11-05 11:21:59.252: E/AndroidRuntime(27109): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2171) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at android.app.ActivityThread.access$700(ActivityThread.java:150) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at android.os.Looper.loop(Looper.java:137) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at android.app.ActivityThread.main(ActivityThread.java:5279) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at java.lang.reflect.Method.invokeNative(Native Method) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at java.lang.reflect.Method.invoke(Method.java:511) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at dalvik.system.NativeStart.main(Native Method) 
11-05 11:21:59.252: E/AndroidRuntime(27109): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.maps.Map" on path: /system/framework/com.google.android.maps.jar:/data/app/com.example.maps-1.apk 
11-05 11:21:59.252: E/AndroidRuntime(27109): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at android.app.Instrumentation.newActivity(Instrumentation.java:1071) 
11-05 11:21:59.252: E/AndroidRuntime(27109): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162) 
11-05 11:21:59.252: E/AndroidRuntime(27109): ... 11 more 

請注意,我已將我的google-play-services_lib添加到我的項目中。我究竟做錯了什麼? 作爲IDE,我正在使用Eclipse和ADT。

+0

你的代碼似乎很好,刷新干淨並重建你的項目。希望有所幫助 – 2014-11-05 10:11:58

回答

0

我和你有同樣的問題。 嘗試從C:/ sdk重新複製google-play-services_lib並導入該項目。 右鍵單擊該項目,單擊Android,選中「是庫」,然後查看已安裝的最後一個可用API,例如「Android 5.0 Android開源項目5.0 API21」。 這應該解決您的問題。添加該庫雖然有點棘手。

0

請嘗試你的XML文件中的代碼,如:

<fragment 
     android:id="@+id/mapDetailview" 
     android:layout_width="fill_parent" 
     android:layout_height="210dip" 
     class="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_below="@+id/layout1" 
     android:text="MapView" /> 

檢查庫文件添加成功,

用於測試目的賴特變量

GoogleMap的地圖;在你的Map.java類中。

如果Map類可用,然後清理您的項目並重新編譯應用程序,我認爲它應該工作。