2014-02-23 45 views
0

我有這個錯誤

NoClassDefFoundError: com.google.android.gms.R$styleable 

我看了很多教程,但它並沒有幫助我。

  1. 項目結構 - >導入模塊 - >谷歌播放服務的lib
  2. 我的項目 - >模塊依賴關係 - >添加谷歌播放服務的lib
  3. 加入谷歌播放服務的jar文件。

我的XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" > 
<fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.MapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
</RelativeLayout> 

我的活動是:

public class FlatOnMap extends Activity { 
private GoogleMap googleMap; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.map_activity); 
    try { 
     initilizeMap(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
private void initilizeMap() { 
    if (googleMap == null) { 
     googleMap = ((MapFragment) getFragmentManager().findFragmentById(
       R.id.map)).getMap(); 
     if (googleMap == null) { 
      Toast.makeText(getApplicationContext(), 
        "Sorry! unable to create maps", Toast.LENGTH_SHORT) 
        .show(); 
     } 
    } 
} 
@Override 
protected void onResume() { 
    super.onResume(); 
    initilizeMap(); 
} 
} 

我的清單是:

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

<uses-sdk 
     android:minSdkVersion="7" 
     android:targetSdkVersion="17"/> 
<permission 
     android:name="ua.khuta.ALHANAi.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature"/> 

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

<uses-permission android:name="ua.khuta.ALHANAi.permission.MAPS_RECEIVE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.GET_ACCOUNTS"/> 
<uses-permission android:name="android.permission.CALL_PHONE"/> 

<application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     > 
    <activity android:name=".MyActivity" 
       android:label="@string/app_name" 
       android:theme="@style/Theme.AppCompat.Light.DarkActionBar" 
       android:screenOrientation="portrait" 
      > 
     <meta-data 
       android:name="android.app.default_searchable" 
       android:value=".SearchResultsActivity"/> 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
    <activity android:name=".SearchResultsActivity" 
       android:screenOrientation="portrait" 
       android:theme="@style/Theme.AppCompat.Light.DarkActionBar" 
      > 
     <intent-filter> 
      <action android:name="android.intent.action.SEARCH"/> 
     </intent-filter> 
     <meta-data 
       android:name="android.app.searchable" 
       android:resource="@xml/searchable"/> 
    </activity> 
    <activity android:name=".FlatInfo"/> 
    <activity android:name=".FlatOnMap"/> 
    <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="myApiKey"/> 
</application> 

</manifest> 

我的解決方案: 我已經取消了我的谷歌播放servises,並再次導入,但我沒有添加.jar文件。 1.導入模塊 - > google_play_servises_lib項目 2 +添加庫 - > google_play_servises_lib

+0

您是否使用過Android Studio? – Emmanuel

+0

我使用Intellij Idea –

回答

1

我看到一些潛在的問題:

  1. 你可能已經在你的代碼 某處進口com.google.android.gms.R,而不是屬於一個到您的應用程序。
  2. 清單上的<permission>已過時;不再需要了。
  3. <uses-permission android:name="ua.khuta.ALHANAi.permission.MAPS_RECEIVE"/>是過時
  4. 你缺少這裏面你<application>

    <meta-data 
        android:name="com.google.android.gms.version" 
        android:value="@integer/google_play_services_version" /> 
    
  5. 你有一個ActivityMyActivity)作爲MAINLAUNCHERAndroidManifest兩次申報;除去<intent-filter>...</intent-filter>之一:

    <intent-filter> 
         <action android:name="android.intent.action.MAIN"/> 
         <category android:name="android.intent.category.LAUNCHER"/> 
        </intent-filter> 
        <intent-filter> 
         <action android:name="android.intent.action.MAIN"/> 
         <category android:name="android.intent.category.LAUNCHER"/> 
        </intent-filter> 
    
+0

我會立即嘗試 –

+0

Android資源包裝:\ AndroidManifest.xml:63:錯誤:錯誤:找不到與給定名稱匹配的資源(值爲'@ integer/google_play_services_version')。但是,當我按下CTRL和「google_play_services_version」 - 我打開這個文件 –

+0

然後,我認爲這肯定意味着你沒有正確導入庫。 – Emmanuel