2013-04-11 68 views
0

我試圖讓使用谷歌地圖一個簡單的Android項目,但是,我似乎無法得到它過去的一個簡單的錯誤無法加載地圖Android中(ClassDefNotFoundError)

這是源代碼:

package mapa.pack.mapamerodeador; 
import android.support.v4.app.FragmentActivity; 
import android.os.Bundle; 

    public class ActividadPrincipal extends FragmentActivity { 

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

此外,這是佈局:

 <?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:background="@color/fondo_pag1" 
     android:orientation="vertical"> 

      <TextView 
         android:id="@+id/titulo_pag1" 
         android:layout_height="wrap_content" 
         android:layout_width="fill_parent" 
         android:layout_alignParentTop="true" 
         android:text="@string/pag1" 
         android:textSize="23sp" 
         android:gravity="center_horizontal"/> 

      <fragment 
       class="com.google.android.gms.maps.SupportMapFragment" 
       android:id="@+id/mapa" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_below="@id/titulo_pag1" 
       android:layout_marginBottom="4sp" 
       android:layout_marginTop="2sp" 
       android:layout_above="@+id/buttonUno" /> 

      <Button 
       android:id="@+id/buttonUno" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:layout_marginRight="5dp" 
       android:padding="5dp" 
       android:background="@color/gris" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentBottom="true" 
       android:text="@string/link_pag_2" /> 

</RelativeLayout> 

最後但並非最不重要的,清單:

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

<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"/> 

<permission 
    android:name="mapa.pack.merodeador.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"/> 
<uses-permission android:name="mapa.pack.merodeador.permission.MAPS_RECEIVE"/> 

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

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

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

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

    <activity 
     android:name="mapa.pack.mapamerodeador.ActividadPrincipal" 
     android:theme="@android:style/Theme.NoTitleBar" 
     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:theme="@android:style/Theme.NoTitleBar" 
     android:name="mapa.pack.mapamerodeador.Autores" /> 

    <activity 
     android:theme="@android:style/Theme.NoTitleBar" 
     android:name="mapa.pack.mapamerodeador.Ajustes" /> 

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

我知道在清單中有一些活動我沒有在代碼中提到過,但是這是因爲即使這兩行看起來都不起作用,所以我評論了其餘部分。當我嘗試執行它時,我在com.google.gms.maps.GoogleMapsOptions.createFromAttributes(UnknownSource)處得到一個「java.lang.NoClasDefFoundError:com.google.android.gms.R $ styleable」
有人知道可能是什麼問題呢?謝謝!! =)

編輯:如果我在XML中評論<片段>,那麼它不會顯示任何內容,但至少它不會崩潰,所以我認爲無論什麼是錯的,在那裏,有沒有如何解決它?

+0

你有谷歌的發揮圖書館安裝? – akhalsa 2013-04-11 18:07:21

+0

我對此很陌生,所以我不確定你的意思是「已安裝」,如果我打開「Extras」文件夾中的「SDK Manager」,有一個選項(Google Play Services),它是目前已安裝,是的。我不確定這是什麼意思.. – Jorge 2013-04-11 18:17:59

回答

0

您的清單文件中的幾個問題:

雖然你包名是:

package="mapa.pack.mapamerodeador" 
在谷歌地圖

perrmission要設置mapa.pack.merodeador

<permission 
android:name="mapa.pack.merodeador.permission.MAPS_RECEIVE" 
android:protectionLevel="signature"/> 

必須相同。

2. Rmove驗證碼:

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

這是一個Google Map API V1許可,並在Google Map API V2沒有必要的。

3.但由你的錯誤我猜會是你沒有正確引用google-play-services庫。檢查前三個步驟這篇博客我寫的,並確保你的所有步驟正確:

Google Map API V2

+0

哇,真棒,非常感謝,我甚至沒有注意到...所有這些教程有點困惑我,但是,我在導入庫時遇到了一個問題,我做了所有的步驟和綠色的刻度顯示,但只要我關上窗戶,它就會變成一個很大的醜陋紅十字,不管是什麼我總是這樣做。你知道什麼可能導致這種奇怪的行爲? – Jorge 2013-04-11 19:14:45

+0

嘗試將此文件移動到路徑較短的位置,然後嘗試再次引用它。 – 2013-04-11 19:17:54

+0

親愛的Emil Adz ...我愛你....真棒,它工作得很好! =) – Jorge 2013-04-11 19:27:53

0

模擬器不顯示新的Google Map API v2。你需要有一個真正的設備來測試它。

+0

是的,但它不僅不顯示,它實際上崩潰...我試過在設備上,它似乎也不工作。雖然我做了重大發現,但我會編輯我的問題。 – Jorge 2013-04-11 18:49:59