2010-09-25 35 views
19

我的應用程序只包含一個覆蓋地圖,但是當我創建我的MapView時,我的應用程序崩潰了一個NoClassDefFoundError。我使用的是與我的目標相匹配的Google API AVD,但顯然我仍然在做錯事。有任何想法嗎?谷歌地圖Android API提供了一個NoClassDefFoundError

編輯:萬一它有幫助,我的NoClassDefFoundError抱怨[generic]。我可以理解爲什麼[generic]沒有班級定義,但我不確定那是從哪裏來的。

此外,稍後的ClassNotFoundException抱怨com.google.android.maps.MapView in loader dalvik.system.PathClassLoader[/data/app/mathphreak.cellmap-1.apk],然後繼續爲java.lang.NoClassDefFoundError: com.google.android.maps.MapView導致不同的NoClassDefFoundError。

回答

1

可能有兩件事。 i)確保你已經在AndroidManifest.xml類中定義了所有的Activity類。

ii)確保您使用「Google API」而不是「Android 2.x」編譯您的Android項目,如果您僅使用Google API編譯,那麼它將添加Google Maps類。

+0

感謝差異@Sharj我已經申請的所有上面的答案,但你的伎倆做的工作。 – 2012-12-28 06:05:58

+0

@AdnanAmjad歡迎您。 – Sharj 2012-12-28 16:51:30

50

請確保您已包含在您的應用程序清單以下行:

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

確保它在正確的位置。我的問題(有類似的錯誤消息)是我已經把它放在那裏,但像使用權限的東西,它只是在根元素清單下,實際上uses-library元素被假定放在應用程序下元件。如果我不清楚,請參閱:從Sameers link配置應用程序清單。

+0

它不適合我Gennymotion模擬器:( – Jackie 2013-12-26 09:34:51

+0

@傑基,抱歉,我不能幫你在那裏。乍一看似乎你可能需要找到一種方法來將虛擬機鏈接到一個實際的谷歌帳戶,但老實說,我不知道。那麼你爲什麼不穀歌:genymotion映射NoClassDefFoundError並找出它,在這裏發佈一個答案,並在這個問題上提出了許多關於這個具體問題的問題,並獲得了名氣。所有這些問題:) – Timo 2013-12-27 22:28:32

+1

謝謝@Timo, 我解決了這個問題。只需從PlayStore安裝谷歌地圖。 我猜設備必須有谷歌地圖才能使用Map v2 – Jackie 2013-12-29 14:58:45

12

我有同樣的問題,我固定它得益於蒂莫·萊託答案,但把這個字符串

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

開放應用程序標記後(開頭)

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

     <activity ... 
+0

@ Matroska:非常感謝您的回答.. +1 – 2012-02-10 08:41:34

1

一件事檢查,

  • 如果你有兩套地圖庫。然後它不起作用。請檢查構建路徑。

希望,這可能適用於某人。

2

我有同樣的問題,我解決它改變的清單:

<activity android:name=".GpsActivity" ></activity> 

<activity android:name="GpsActivity" ></activity> 

「點」是