NoClassDefFoundError Android Project
Try going to Project -> Properties -> Java Build Path -> Order & Export and ensure Android Private Libraries are checked for your project and for all other library projects you are using.
VorteXavier
Updated on December 11, 2022Comments
-
VorteXavier over 1 year
First of all, I know there are plenty of questions/answers about this topic, I've read most of them but still getting the error:
05-17 02:57:06.522: E/AndroidRuntime(17073): java.lang.NoClassDefFoundError: ar.com.package.android.MainActivity
The project worked just fine until I updated Eclipse from 21 to 22.
I have tried everything I could: I checked the manifest; Cleaned the project; checked my build path, tried the app in different android version, set java compliance level to 1.6 (libraries too), etc. I just can't figure out what the problem is.
Here's my manifest, I couldn't find anything wrong with it:
<?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>
Any help is welcome. I'll keep researching, if I get the answer I'll post it.
EDIT
Here's the MainActivity code:
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"); } }
-
Sloy almost 11 yearsThanks, worked for me.
-
samm almost 11 years+1 i tried many solutions but only this got worked, thanks:)
-
Rarw almost 11 yearsworked for me - great catch
-
androidevil over 10 yearsHow can I do this setting in AndroidStudio?
-
smriti3 over 10 yearsThis worked for me [+1]
-
Eman87 over 10 yearsIn my case it checked in all libraries and I still got the same exception.
-
John almost 10 yearsThanks, worked for me
-
SleepNot about 9 yearsAny solution for Android Studio?
-
AA_PV over 7 yearsManaged to get the error on Android Studio. Any solutions yet? @androidevil
-
androidevil over 7 years@AA_PV I don't remember what I did in that time. Coincidentally, I'm having this issue. Looking for a solution now.
-
AA_PV over 7 yearsI think I ran into the problem on changing the gradle version in the build file for a library. I don't remember resolving this myself now, try running with lower version of gradle