Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

App crashes while using SherlockFragmentActivity

I am using ABS. My launcher activity is RegistrationActivity. When I extend this with SherlockActivity, my app works fine. But when I extend it with SherlockFragmentActivity, my app crashes while running on my phone.

 package com.example.app;

 import android.content.Context; 
 import android.content.Intent; 
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.support.v4.app.FragmentManager; 
 import android.view.View;
 import android.support.v4.app.DialogFragment;
 import com.actionbarsherlock.app.SherlockFragmentActivity;

 public class RegistrationActivity extends SherlockFragmentActivity {

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         // Check if the user is already registered
         Context context = this;
         SharedPreferences settings = context.getSharedPreferences( "settings" , Context.MODE_PRIVATE);
         int isRegistered = settings.getInt( "isRegistered", 0 );

         if( isRegistered == 1 ) {
             Intent intent = new Intent(this, DashboardActivity.class);
             startActivity(intent);
         }
         else {
             setContentView(R.layout.activity_registration);
             getSupportActionBar().setDisplayHomeAsUpEnabled(true);
         }

     }

    public void pickCountry(View view) {

     }

 }

I am using AndroidStudio on a MAC.

10-10 10:53:38.684    7751-7751/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.app/com.example.app.RegistrationActivity}: java.lang.ClassNotFoundException: com.example.app.RegistrationActivity
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1995)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096)
            at android.app.ActivityThread.access$600(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:4787)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ClassNotFoundException: com.example.app.RegistrationActivity
            at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1986)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096)
            at android.app.ActivityThread.access$600(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:4787)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
            at dalvik.system.NativeStart.main(Native Method)

I even have the activity in my AndroidManifest.xml

    <activity
        android:name="com.example.app.RegistrationActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
like image 859
kapeels Avatar asked Mar 04 '26 12:03

kapeels


1 Answers

I run your code in my eclipse and, indeed, it crashes. But I fix it changing this:

<activity
    android:name="com.example.app.RegistrationActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

By this:

<activity
    android:name="com.example.app.RegistrationActivity"
    android:theme="@style/Theme.Sherlock"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Tell me if this fix your problem.

like image 187
4gus71n Avatar answered Mar 06 '26 00:03

4gus71n



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!