Bryan
Bryan

Reputation: 3541

java.lang.RuntimeException android

When I'm trying to start my App In Genymotion, I get this following error:

09-08 07:03:12.697: E/AndroidRuntime(2291): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.waddapp/com.example.waddapp.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.waddapp.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.waddapp-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
09-08 07:03:12.697: E/AndroidRuntime(2291):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2236)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at android.app.ActivityThread.access$800(ActivityThread.java:151)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at android.os.Handler.dispatchMessage(Handler.java:102)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at android.os.Looper.loop(Looper.java:135)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at android.app.ActivityThread.main(ActivityThread.java:5254)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at java.lang.reflect.Method.invoke(Native Method)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at java.lang.reflect.Method.invoke(Method.java:372)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
09-08 07:03:12.697: E/AndroidRuntime(2291): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.waddapp.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.waddapp-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
09-08 07:03:12.697: E/AndroidRuntime(2291):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
09-08 07:03:12.697: E/AndroidRuntime(2291):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226)
09-08 07:03:12.697: E/AndroidRuntime(2291):     ... 10 more
09-08 07:03:12.697: E/AndroidRuntime(2291):     Suppressed: java.lang.NoClassDefFoundError: com.example.waddapp.MainActivity
09-08 07:03:12.697: E/AndroidRuntime(2291):         at dalvik.system.DexFile.defineClassNative(Native Method)
09-08 07:03:12.697: E/AndroidRuntime(2291):         at dalvik.system.DexFile.defineClass(DexFile.java:226)
09-08 07:03:12.697: E/AndroidRuntime(2291):         at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
09-08 07:03:12.697: E/AndroidRuntime(2291):         at dalvik.system.DexPathList.findClass(DexPathList.java:321)
09-08 07:03:12.697: E/AndroidRuntime(2291):         at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
09-08 07:03:12.697: E/AndroidRuntime(2291):         ... 14 more
09-08 07:03:12.697: E/AndroidRuntime(2291):     Suppressed: java.lang.ClassNotFoundException: com.example.waddapp.MainActivity
09-08 07:03:12.697: E/AndroidRuntime(2291):         at java.lang.Class.classForName(Native Method)
09-08 07:03:12.697: E/AndroidRuntime(2291):         at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
09-08 07:03:12.697: E/AndroidRuntime(2291):         at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
09-08 07:03:12.697: E/AndroidRuntime(2291):         at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
09-08 07:03:12.697: E/AndroidRuntime(2291):         ... 13 more
09-08 07:03:12.697: E/AndroidRuntime(2291):     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

Why can't my class be found?

Here is my code:

package com.example.waddapp;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

import com.facebook.Request;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.UiLifecycleHelper;
import com.facebook.model.GraphUser;

public class MainActivity extends ActionBarActivity {
    // Create, automatically open (if applicable), save, and restore the 
    // Active Session in a way that is similar to Android UI lifecycles. 
    private UiLifecycleHelper uiHelper;
    private View otherView;
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Set View that should be visible after log-in invisible initially
        otherView = (View) findViewById(R.id.other_views);
        otherView.setVisibility(View.GONE);
        // To maintain FB Login session
        uiHelper = new UiLifecycleHelper(this, callback);
        uiHelper.onCreate(savedInstanceState);
    }

    // Called when session changes
    private Session.StatusCallback callback = new Session.StatusCallback() {
        @Override
        public void call(Session session, SessionState state,
                Exception exception) {
            onSessionStateChange(session, state, exception);
        }
    };

    // When session is changed, this method is called from callback method
    private void onSessionStateChange(Session session, SessionState state,
            Exception exception) {
        final TextView name = (TextView) findViewById(R.id.name);
        final TextView gender = (TextView) findViewById(R.id.gender);
        final TextView location = (TextView) findViewById(R.id.location);
        // When Session is successfully opened (User logged-in)
        if (state.isOpened()) {
            Log.i(TAG, "Logged in...");
            // make request to the /me API to get Graph user
            Request.newMeRequest(session, new Request.GraphUserCallback() {

                // callback after Graph API response with user
                // object
                @Override
                public void onCompleted(GraphUser user, Response response) {
                    if (user != null) {
                        // Set view visibility to true
                        otherView.setVisibility(View.VISIBLE);
                        // Set User name 
                        name.setText("Hello " + user.getName());
                        // Set Gender
                        gender.setText("Your Gender: "
                                + user.getProperty("gender").toString());
                        location.setText("Your Current Location: "
                                + user.getLocation().getProperty("name")
                                        .toString());
                    }
                }
            }).executeAsync();
        } else if (state.isClosed()) {
            Log.i(TAG, "Logged out...");
            otherView.setVisibility(View.GONE);
        }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        uiHelper.onActivityResult(requestCode, resultCode, data);
        Log.i(TAG, "OnActivityResult...");
    }

    @Override
    public void onResume() {
        super.onResume();
        uiHelper.onResume();
    }

    @Override
    public void onPause() {
        super.onPause();
        uiHelper.onPause();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        uiHelper.onDestroy();
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        uiHelper.onSaveInstanceState(outState);
    }
}

I'm new to Java programming and Android development.

Below you can find my manifest.xml from my project:

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

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="23" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />
        <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="com.facebook.LoginActivity"
            android:theme="@style/AppTheme">
        </activity>
    </application>

</manifest>

Upvotes: 1

Views: 1745

Answers (3)

IntelliJ Amiya
IntelliJ Amiya

Reputation: 75788

Whats your logcat throws

 java.lang.ClassNotFoundException: Didn't find class "com.example.waddapp.MainActivity" 

A ClassNotFoundException is thrown when the reported class is not found by the ClassLoader. This typically means that the class is missing from the CLASSPATH.

What should You do

Please modify you manifest.

Upvotes: 1

Kirill Zotov
Kirill Zotov

Reputation: 571

Your facebook activity should declare like this from their docs, but inlikely that does the problem. <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" />

Upvotes: 0

Anup Dasari
Anup Dasari

Reputation: 488

Did you mention activity tag in your manifest file??

 <activity
        android:name=".MainActivity >
        <intent-filter android:label="@string/app_name" >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

Upvotes: 0

Related Questions