14

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>
Eric Siegal
  • 258
  • 1
  • 3
  • 14
  • where is your `TempLobbyActivity`? put your manifest file. – Rustam Nov 02 '14 at 17:30
  • Run project->Clean, see if this solves the problem. Or restart eclipse. – Jickson Nov 02 '14 at 17:37
  • Include the start of TempLobbyActivity in your question - specifically the package declaration and the class declaration showing what you extend and implement. Also uninstall and reinstall while watching logcat for messages relating to a missing dependency. – Chris Stratton Nov 02 '14 at 19:10
  • 1
    You have probably not correctly linked the support library, or else need a proguard rule to protect it. When that is missing, activities which depend on it will be dropped and turn up missing as well. – Chris Stratton Nov 02 '14 at 20:23
  • Sometimes due to gradle version this type of issue is rising. Please check [this answer](http://stackoverflow.com/a/35426390/968532) – Kalpesh Feb 16 '16 at 07:33

5 Answers5

13

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.

kinjal patel
  • 396
  • 3
  • 12
0

At your AndroidManifest.xml register the TempLobbyActivity

<activity android:name="TempLobbyActivity"></activity>

So your manifest file should be like this

<activity android:name=".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="TempLobbyActivity"></activity>
Reinaldo
  • 44
  • 5
0

There is a bug on API level 10 (Android 2.3.3 - 2.3.7) since November 21 (Possibly in the Play Services library):

See this bug report: https://code.google.com/p/android/issues/detail?id=81083

Rolf ツ
  • 8,611
  • 6
  • 47
  • 72
Majkel
  • 11
0

For the ones who may still face this problem:

Add proper dependencies to your build.gradle, Such error happens when dependencies aren't properly added and gradle doesn't compile libraries added to the project, So you don't access those library classes in runtime.

Masoud Dadashi
  • 1,044
  • 10
  • 11
0

I found that I had an error in the console that I had ignored:

[ExoPlayerLib] Could not find ExoPlayerLib.apk.

Solving this with SO answer, the secondary error of NoClassDefFoundError was also solved.

Looks like, any issue with building and including libraries in a project can cause this problem.

Community
  • 1
  • 1
barkside
  • 3,951
  • 4
  • 23
  • 32