Failing to launch activity due to ClassNotFoundException

30,772

I was getting the same error even though class was defined in AndroidManifest.xml.

Cause : Sometimes this happens as you add more than one version of appcompat library.

Solution : Remove any previous version of appcompat lib and add appcompat_v7.jar to your /lib folder.

Clean your project and build again. You might not get error again.

Share:
30,772
Eric Siegal
Author by

Eric Siegal

Updated on July 22, 2022

Comments

  • Eric Siegal
    Eric Siegal almost 2 years

    I am trying to launch a new activity using the code:

    Intent i = new Intent(this, TempLobbyActivity.class);
    startActivity(i);
    finish();
    

    When I launch this code I get the following exceptions when executing the Intent constructor.

    FATAL EXCEPTION: main
    Process: com.edr.iveflownthat, PID: 1457
    java.lang.NoClassDefFoundError: Failed resolution of: Lcom/edr/iveflownthat/TempLobbyActivity;
        at com.edr.iveflownthat.pages.MainActivity.tryAutoLogin(MainActivity.java:46)
        at com.edr.iveflownthat.pages.MainActivity.onCreate(MainActivity.java:22)
        at android.app.Activity.performCreate(Activity.java:5933)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
        at android.app.ActivityThread.access$800(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5221)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
    Caused by: java.lang.ClassNotFoundException: Didn't find class     "com.edr.iveflownthat.TempLobbyActivity" on path: DexPathList[[zip file "/data/app/com.edr.iveflownthat-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
    FATAL EXCEPTION: main
    Process: com.edr.iveflownthat, PID: 1457
    java.lang.NoClassDefFoundError: Failed resolution of: Lcom/edr/iveflownthat/TempLobbyActivity;
        at com.edr.iveflownthat.pages.MainActivity.tryAutoLogin(MainActivity.java:46)
        at com.edr.iveflownthat.pages.MainActivity.onCreate(MainActivity.java:22)
        at android.app.Activity.performCreate(Activity.java:5933)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
        at android.app.ActivityThread.access$800(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5221)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.edr.iveflownthat.TempLobbyActivity" on path: DexPathList[[zip file "/data/app/com.edr.iveflownthat-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
        ... 15 more
    Suppressed: java.lang.NoClassDefFoundError: com.edr.iveflownthat.TempLobbyActivity
        at dalvik.system.DexFile.defineClassNative(Native Method)
        at dalvik.system.DexFile.defineClass(DexFile.java:222)
        at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:215)
        at dalvik.system.DexPathList.findClass(DexPathList.java:321)
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
        ... 17 more
    Suppressed: java.lang.ClassNotFoundException: com.edr.iveflownthat.TempLobbyActivity
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
        ... 16 more
    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
        ... 15 more
    Suppressed: java.lang.NoClassDefFoundError: com.edr.iveflownthat.TempLobbyActivity
        at dalvik.system.DexFile.defineClassNative(Native Method)
        at dalvik.system.DexFile.defineClass(DexFile.java:222)
        at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:215)
        at dalvik.system.DexPathList.findClass(DexPathList.java:321)
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
        ... 17 more
    Suppressed: java.lang.ClassNotFoundException: com.edr.iveflownthat.TempLobbyActivity
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
        ... 16 more
    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
    

    I have made sure that the class TempLobbyActivity does exist and is a proper activity. I get no other errors.

    Here is the begining of TempLobbyActivity:

    package com.edr.iveflownthat;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.ActionBarDrawerToggle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    import com.edr.iveflownthat.pages.fragments.LobbyLeaderboardFragment;
    import com.edr.iveflownthat.pages.fragments.LobbyMessagerFragment;
    import com.edr.iveflownthat.pages.fragments.LobbyMyPlanesFragment;
    
    public class TempLobbyActivity extends FragmentActivity {
    

    And here is my manifest file:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.edr.iveflownthat"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="14"
            android:targetSdkVersion="19" />
    
        <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="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="android.permission.USE_CREDENTIALS" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/app_logo"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
    
            <activity
                android:name=".pages.MainActivity"
                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:name=".StartActivity"
                android:label="@string/title_activity_start" >
            </activity>
            <activity
                android:name=".pages.AccountLoginActivity"
            android:label="@string/title_activity_login" >
            </activity>
            <activity
                android:name=".pages.MyPlanesActivity"
                android:label="@string/title_activity_my_planes" >
            </activity>
            <activity
                android:name="com.edr.icom.edr.iveflownthat.activities.AccountNewActivity"
                android:label="@string/title_activity_new_account" >
            </activity>
            <activity
                android:name=".pages.SearchPlanesActivity"
                android:label="@string/title_activity_search"
                android:parentActivityName=".pages.LobbyActivity" >
                <meta-data
                    android:name="android.support.PARENT_ACTIVITY"
                    android:value="com.edr.iveflownthat.pages.LobbyActivity" />
            </activity>
            <activity
                android:name=".pages.LeaderBoardActivity"
                android:label="@string/title_activity_leader_board" >
            </activity>
            <activity
                android:name=".pages.PlaneBioActivity"
                android:label="@string/title_activity_plane_info" >
            </activity>
            <activity
                android:name=".pages.AccountLoginFacebookActivity"
                android:label="@string/title_activity_account_login_facebook" >
            </activity>
            <activity
                android:name=".pages.AccountLoginGoogleActivity"
                android:label="@string/title_activity_account_login_google" >
            </activity>
            <activity
                android:name=".pages.AccountLoginTwitterActivity"
                android:label="@string/title_activity_account_login_twitter" >
            </activity>
            <activity
                android:name=".pages.SettingsActivity"
                android:label="@string/title_activity_settings" >
            </activity>
            <activity
                android:name=".pages.MainTabActivity"
                android:label="@string/title_activity_main_tab" >
            </activity>
            <activity
                android:name=".pages.LobbyActivity"
                android:label="@string/title_activity_lobby" >
            </activity>
            <activity
                android:name=".pages.MessageStreamActivity"
                android:label="@string/title_activity_message_stream"
                android:parentActivityName=".pages.LobbyActivity" >
                <meta-data
                    android:name="android.support.PARENT_ACTIVITY"
                    android:value="com.edr.iveflownthat.pages.LobbyActivity" />
            </activity>
            <activity
                android:name=".pages.LeaderboardActivity"
                android:label="@string/title_activity_leaderboard"
                android:parentActivityName=".pages.LobbyActivity" >
            <meta-data
                    android:name="android.support.PARENT_ACTIVITY"
                    android:value="com.edr.iveflownthat.pages.LobbyActivity" />
            </activity>
    
            <service
                android:name=".services.MainService"
                android:exported="false" />
    
            <activity
                android:name=".pages.NewMessageActivity"
                android:label="@string/title_activity_new_message" >
            </activity>
            <activity
                android:name=".pages.PlaneActivity"
                android:label="@string/title_activity_plane" >
            </activity>
            <!--
            <meta-data
                android:name="com.facebook.sdk.ApplicationId"
                android:value="@string/app_id" />
    
            <activity
                android:name="com.facebook.LoginActivity"
                android:label="@string/app_name" >
            </activity>
            -->
            <activity
                android:name=".TempLobbyActivity"
                android:label="@string/title_activity_temp_lobby" >
            </activity>
        </application>
    
    </manifest>
    
  • Chris Stratton
    Chris Stratton over 9 years
    I suspect this is not the problem. But what you have posted won't quite work - you must either specify the package name or lead with a "." as for MainActivity.
  • VJ Vélan Solutions
    VJ Vélan Solutions over 9 years
    @Reinaldo - edit your answer per Chris Stratton suggestion and i will upvote ur answer :)