2013-01-09 207 views
6

我想在我的android上加載谷歌地圖API。我嘗試了一切搜索,但仍然崩潰。 這是我MainActivity.java谷歌地圖android API V2崩潰

package com.example.androidmapsv2; 

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

import com.google.android.gms.common.GooglePlayServicesUtil; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 

public class MainActivity extends FragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // Show the Up button in the action bar. 
     getActionBar().setDisplayHomeAsUpEnabled(true); 
     GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 

     GoogleMap map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 

    } 

} 

這是我的佈局activity_main.xml中

​​

這是我的清單

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

    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="16" /> 

    <permission 
     android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" > 
    </permission> 

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

    <!-- Require OpenGL ES version 2 --> 
    <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" > 
     <uses-library android:name="com.google.android.maps" /> 

     <activity 
      android:name="com.example.androidmapsv2.MainActivity" 
      android:label="aaa" > 
      <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="AIzaSyDr9xN8L3sF6W2ZRWmTR7q0lhTeOWhXEfQ" /> 
    </application> 

</manifest> 

這是關鍵的我已經有了 enter image description here

這是libs inclu DED(更新中解決) enter image description here

和我沒有真正的Android設備,所以我在這個tutorial

這是logcat的

01-09 18:05:19.184: E/Trace(1366): error opening trace file: No such file or directory (2) 
01-09 18:05:19.354: W/dalvikvm(1366): Unable to resolve superclass of Lcom/example/androidmapsv2/MainActivity; (5) 
01-09 18:05:19.354: W/dalvikvm(1366): Link of class 'Lcom/example/androidmapsv2/MainActivity;' failed 
01-09 18:05:19.365: D/AndroidRuntime(1366): Shutting down VM 
01-09 18:05:19.365: W/dalvikvm(1366): threadid=1: thread exiting with uncaught exception (group=0x40a13300) 
01-09 18:05:19.384: E/AndroidRuntime(1366): FATAL EXCEPTION: main 
01-09 18:05:19.384: E/AndroidRuntime(1366): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.androidmapsv2/com.example.androidmapsv2.MainActivity}: java.lang.ClassNotFoundException: com.example.androidmapsv2.MainActivity 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.os.Looper.loop(Looper.java:137) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at dalvik.system.NativeStart.main(Native Method) 
01-09 18:05:19.384: E/AndroidRuntime(1366): Caused by: java.lang.ClassNotFoundException: com.example.androidmapsv2.MainActivity 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.Instrumentation.newActivity(Instrumentation.java:1053) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  ... 11 more 

修訂仿真器上安裝

我試圖複製google-play-services_lib到工作區,紅色標記消失 enter image description here 但它來了另一個錯誤。它缺少google-play-services_lib.jar(lib文件夾名稱+ .jar)。如何修復它 enter image description here 當我點擊google-play-services_lib.jar,刪除按鈕不顯示(如圖片)。不過,我嘗試刪除所有的Android依賴關係,並再次導入其他庫。現在它工作,但仍然崩潰。

我試圖改變

MainActivity extends Activity 

MainActivity extends FragmentActivity 

和佈局

​​

它出現另一個錯誤。幫助我,現在我已經解決了這個問題

最後,我解決了我的錯誤。它是由我的日食引起的(我猜)。當你添加庫類時,它會自動出現「google-play-services_lib.jar」,你不需要做任何事情。我重新安裝Eclipse並且一切都正常工作 enter image description here

+0

只需選擇'google-play-services_lib.jar',並刪除庫。 –

+0

thk你幫我,但我認爲這種錯誤關於libs附加和日食。我試過一個例子在線,它有相同的錯誤 – Fido

+0

@Rahul Patel我是新手在stackoverflow。怎麼做?無論如何,我已經通過重新安裝我的eclipse和sdk解決了我的問題。這是導入庫中的問題google-play-services_lib.jar – Fido

回答

2

我第一次使用API​​ V2編碼地圖時,也面臨這種問題。

剛剛嘗試使用帶有FragmentActivity,而不是你要的項目(goolge_play_services)複製到您的工作區,然後將其連接到你的項目Activity

的延伸。在上面的圖像中顯示紅色,所以選擇它並刪除,然後再次添加庫添加項目。

+1

我從活動更改爲FragementActivity,但它仍然崩潰,並出現另一個錯誤 – Fido

+0

請安裝'谷歌播放服務到您的SDK manager.if不可見然後更新您的ADT插件。 –

0

您必須將項目(goolge_play_services)複製到您的工作區,然後將其附加到您的項目中。

你在做什麼是導入項目,而不是複選項目複製到工作區,因爲它顯示你添加庫中的錯誤標記。

因此,只需勾選將項目複製到工作區,同時導入google_play_services項目,然後將其附加到您的項目。

+0

tks,我將它導入到我的工作區,它出現了另一個錯誤。我在第一篇文章中更新了錯誤,我該如何解決它 – Fido

+0

請檢查您是否已經將兼容性jar文件添加到您的項目中,並使用FragmentActivity擴展您的活動 – TNR

+0

我已更改,但出現另一個錯誤,我先更新帖子。你能幫我 – Fido

0

正如我在這裏我可以看到,你正在使用API​​級別8和AFAIK「碎片」從11支持。

所以在這裏你需要使用片段的兼容庫。

還要確保您還在工作區中導入了google-play-service庫並將其添加到您的應用程序中。

1

這是需要使用SupportMapFragment如果API版本低於11

  • 重要

    不要忘了FragmentActivity延長您活動

0

您需要編輯應用程序的AndroidManifest.xml文件,並在元素中添加以下聲明。這嵌入了應用程序編譯的Google Play服務版本。

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