it-swarm.com.de

Starten der Aktivität aufgrund von ClassNotFoundException fehlgeschlagen

Ich versuche, eine neue Aktivität mit dem Code zu starten:

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

Wenn ich diesen Code starte, erhalte ich beim Ausführen des Intent-Konstruktors die folgenden Ausnahmen.

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

Ich habe sichergestellt, dass die Klasse TempLobbyActivity existiert und eine richtige Aktivität ist. Ich bekomme keine anderen Fehler.

Hier ist der Beginn von 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 {

Und hier ist meine Manifestdatei:

<?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>
14
Eric Siegal

Ich habe dieselbe Fehlermeldung erhalten, obwohl die Klasse in AndroidManifest.xml definiert wurde.

Ursache : Manchmal passiert dies, wenn Sie mehr als eine Version der Appcompat-Bibliothek hinzufügen.

Lösung : Entfernen Sie frühere Versionen von appcompat lib und fügen Sie appcompat_v7.jar in Ihren Ordner/lib ein.

Reinige dein Projekt und baue erneut. Sie erhalten möglicherweise keinen Fehler mehr.

13
kinjal patel

Registrieren Sie in Ihrem AndroidManifest.xml die TempLobbyActivity

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

Ihre Manifestdatei sollte also so sein

<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>
0
Reinaldo

Ich habe festgestellt, dass in der Konsole ein Fehler aufgetreten ist, den ich ignoriert hatte:

[ExoPlayerLib] ExoPlayerLib.apk konnte nicht gefunden werden.

Wenn Sie dies mit SO answer lösen, wurde auch der sekundäre Fehler von NoClassDefFoundError behoben.

Anscheinend kann jedes Problem beim Erstellen und Einschließen von Bibliotheken in ein Projekt dieses Problem verursachen.

0
barkside

Auf API-Level 10 (Android 2.3.3 - 2.3.7) ist seit dem 21. November ein Fehler aufgetreten (möglicherweise in der Play Services-Bibliothek):

Diesen Fehlerbericht anzeigen:https://code.google.com/p/Android/issues/detail?id=81083

0
Majkel

Für diejenigen, die möglicherweise noch mit diesem Problem konfrontiert sind:

Fügen Sie Ihrem build.gradle richtige Abhängigkeiten hinzu. Ein solcher Fehler tritt auf, wenn Abhängigkeiten nicht ordnungsgemäß hinzugefügt werden und Gradle die zum Projekt hinzugefügten Bibliotheken nicht kompiliert. Sie können also nicht auf diese Bibliotheksklassen in Runtime zugreifen. 

0
Masoud Dadashi