2013-05-17 20 views
9

Przede wszystkim, wiem, istnieje wiele pytań/odpowiedzi na ten temat, czytałem większość z nich, ale wciąż otrzymuję błąd:NoClassDefFoundError Android Projekt

05-17 02:57:06.522: E/AndroidRuntime(17073): java.lang.NoClassDefFoundError: ar.com.package.android.MainActivity 

Projekt działało w porządku, dopóki nie zaktualizowałem Eclipse z 21 na 22.

Próbowałem wszystkiego, co mogłem: sprawdziłem manifest; Oczyszczone projekt; sprawdziłem ścieżkę budowania, wypróbowałem aplikację w innej wersji Androida, ustawiłem poziom zgodności Java na 1.6 (biblioteki też), itp. Po prostu nie mogę zrozumieć, na czym polega problem.

Oto mój manifest, nie mogłem znaleźć nic złego z nim:

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

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

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

<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"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

<permission 
    android:name="ar.com.package.android.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"/> 
<uses-permission android:name="ar.com.package.android.permission.MAPS_RECEIVE"/> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/Theme.Sherlock.Light.DarkActionBar" 
    android:hardwareAccelerated="true"> 


    <meta-data 
android:name="com.google.android.maps.v2.API_KEY" 
android:value="my key"/> 


    <activity 
     android:name="ar.com.package.android.SplashScreen" 
     android:label="@string/app_name" 
     android:noHistory="true" 
     android:screenOrientation="portrait" 
     android:theme="@android:style/Theme.Black.NoTitleBar" 
     android:windowSoftInputMode="stateHidden" 
     > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name="ar.com.package.android.MainActivity" 
     android:logo="@drawable/logo" 
     android:screenOrientation="portrait" 
     android:windowSoftInputMode="stateHidden" 
     > 
    </activity> 

    <activity 
     android:name="ar.com.package.android.SearchForm" 
     android:label="@string/title_activity_search_form" 
     android:parentActivityName="ar.com.package.android.MainActivity" 
     > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="ar.com.package.android.MainActivity" /> 
    </activity> 

</application> 

</manifest> 

Każda pomoc jest mile widziana. Będę kontynuował badania, jeśli dostanę odpowiedź, opublikuję to.

EDIT

Oto kod główną działalność:

package ar.com.package.android; 

import android.annotation.SuppressLint; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.DialogFragment; 
import android.view.KeyEvent; 
import android.view.View; 
import android.widget.Toast; 
import com.actionbarsherlock.view.*; 
import com.google.android.gms.common.ConnectionResult; 
import com.google.android.gms.common.GooglePlayServicesUtil; 
import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; 
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.OnCloseListener; 
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.OnOpenListener; 
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity; 

@SuppressLint("NewApi") 
public class MainActivity extends SlidingFragmentActivity { 

private SlidingMenu menu; 
private Toast toast; 
private long lastBackPressTime = 0; 
private GoogleMap map; 

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

    // slidemenu 
    setBehindContentView(R.layout.menu); 

    setSlidingActionBarEnabled(false); 

    menu = getSlidingMenu(); 
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
    menu.setShadowWidthRes(R.dimen.shadow_width); 
    menu.setShadowDrawable(R.drawable.shadow); 
    menu.setBehindOffset(100); 
    menu.setFadeDegree(0.35f); 
    menu.setSlidingEnabled(false); 

    menu.setOnCloseListener(new OnCloseListener() { 
     @Override 
     public void onClose() { 
      menu.setSlidingEnabled(false); 
     } 
    }); 

    menu.setOnOpenListener(new OnOpenListener() { 
     @Override 
     public void onOpen() { 
      menu.setSlidingEnabled(true); 
     } 
    }); 

    getSupportActionBar().setDisplayShowCustomEnabled(true); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(false); 

    // ---slide menu 

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

    // Getting Google Play availability status 
    int status = GooglePlayServicesUtil 
      .isGooglePlayServicesAvailable(getBaseContext()); 

    if (status != ConnectionResult.SUCCESS) { 

     Toast.makeText(this, "Google Maps no esta disponible.", 
       Toast.LENGTH_LONG).show(); 

    } else { 


     map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
       -26.8175915814614, -65.22274105834958), 13)); 

     // Enabling MyLocation Layer of Google Map 
     map.setMyLocationEnabled(true); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getSupportMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     toggle(); 
     return true; 

    case R.id.action_search: 
     final int RESULT = 1; 
     startActivityForResult(new Intent(MainActivity.this, 
       SearchForm.class), RESULT); 
     return true; 

    case R.id.action_lineas: 
     showDialogLineas(); 
     return true; 

    case R.id.action_acercade: 
     showDialogAcercaDe(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && !menu.isMenuShowing()) { 

     if (this.lastBackPressTime < System.currentTimeMillis() - 4000) { 
      toast = Toast.makeText(this, 
        "Presione Atrás nuevamente para cerrar", 
        Toast.LENGTH_LONG); 
      toast.show(); 
      this.lastBackPressTime = System.currentTimeMillis(); 
     } else { 
      if (toast != null) { 
       toast.cancel(); 
      } 
      super.onBackPressed(); 
     } 

     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

public void onResultadosClicked(View view) { 
    showMenu(); 
} 

public void showDialogLineas(){ 
    DialogFragment dialog = new LineasDialog(); 
    dialog.show(getSupportFragmentManager(), "Lineas"); 
} 

public void showDialogAcercaDe(){ 
    DialogFragment dialog = new AcercaDeDialog(); 
    dialog.show(getSupportFragmentManager(), "Acerca"); 
} 
} 
+0

Czy możesz również opublikować kod MainActivity? –

+0

Czy poprawnie poleciłeś bibliotekę usług Google Play w projekcie mapy? Przypuszczam, że nie odnosisz się do biblioteki usług gier gogole. drugi powinieneś użyć tego w manifeście zamiast tego Raghunandan

+0

Problem polegał na aktualizacji 21 -> 22, którą rozwiązałem używając łącza timisusa. Dzięki za pomoc – VorteXavier

Odpowiedz

33

Spróbuj przejść do Project -> Właściwości - Path Budowa> Java -> Zamówienie & Export i zapewniają Android prywatnych Biblioteki są sprawdzane pod kątem Twój projekt i wszystkie inne projekty biblioteczne, z których korzystasz.

+0

Dzięki, pracowałem dla mnie. – Sloy

+0

+1 Próbowałem wielu rozwiązań, ale tylko to zadziałało, dziękuję :) – samm

+0

pracował dla mnie - świetny połów – Rarw

Powiązane problemy