Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

My app is crashing in landscape mode

I don't know what's wrong, whenever I launch my app on an Emulator and I switch to landscape mode, it crashes. But it work fine in portrait mode. Please what can i do to solve this. Thanks in advance! here's my codes...

MainActivity.class

import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import com.actgeek.android.myapplication.R;

public class MainActivity extends AppCompatActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MAFragment mfrag = new MAFragment();
        FragmentTransaction FT = getFragmentManager().beginTransaction();
        FT.replace(R.id.fragment, mfrag);
        FT.commit();

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

This Fragment displays in the activity_main layout

MAFragment.class

public class MAFragment extends ListFragment {

    public MAFragment() {
    }


   @Override
           public void onActivityCreated(Bundle savedInstanceState){
       super.onActivityCreated(savedInstanceState);

       String topics[] = Mylists.TOPICS;

       MyArrayAdapter adapter = new MyArrayAdapter(getActivity(),
               topics);

        setListAdapter(adapter);

       getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
           public void onItemClick(AdapterView<?> parent, View view, int
                   position, long id) {

               Intent intent = new Intent(getActivity(), SubTopicsActivity.class);
               intent.putExtra("index", position);
               startActivity(intent);
           }
       });


   }
}

activity_main layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:layout="@layout/fragment_main"
    tools:context="com.actgeek.android.studypack.MainActivity">


<fragment android:id="@+id/fragment"
          android:name="com.actgeek.android.studypack.MAFragment"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</LinearLayout>

Here's the error i'm getting whenever the app crashes.

12-19 11:08:18.383 28644-28644/com.actgeek.android.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.actgeek.android.myapplication/com.actgeek.android.studypack.MainActivity}: java.lang.NullPointerException
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2360)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2412)
                                                                                       at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3919)
                                                                                       at android.app.ActivityThread.access$700(ActivityThread.java:162)
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1370)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:107)
                                                                                       at android.os.Looper.loop(Looper.java:194)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5388)
                                                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                       at java.lang.reflect.Method.invoke(Method.java:525)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
                                                                                       at dalvik.system.NativeStart.main(Native Method)
                                                                                    Caused by: java.lang.NullPointerException
                                                                                       at android.support.v7.internal.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:94)
                                                                                       at android.support.v7.internal.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:87)
                                                                                       at android.support.v7.internal.app.ToolbarActionBar.<init>(ToolbarActionBar.java:77)
                                                                                       at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:198)
                                                                                       at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:96)
                                                                                       at com.actgeek.android.studypack.MainActivity.onCreate(MainActivity.java:28)
                                                                                       at android.app.Activity.performCreate(Activity.java:5141)
                                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1084)
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2412) 
                                                                                       at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3919) 
                                                                                       at android.app.ActivityThread.access$700(ActivityThread.java:162) 
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1370) 
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                                       at android.os.Looper.loop(Looper.java:194) 
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:5388) 
                                                                                       at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                                       at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
                                                                                       at dalvik.system.NativeStart.main(Native Method) 
like image 924
devmike01 Avatar asked Dec 19 '15 10:12

devmike01


People also ask

Can you force an app into landscape mode?

When on the main screen, under the orientation section, you will see a number of options like 'Auto-rotate OFF', 'Auto-rotate ON', 'Forced Portrait' and 'Forced Landscape'. As the names suggest, you can use these buttons as one-tap shortcuts to toggle the orientation of your device.

How do you fix apps that keep crashing?

You may have downloaded the app improperly, and all you need to do is to reinstall the app to fix the crashing problem: Go to Settings > “Apps” or “Application manager” > Choose the app that crashes > Tap the “Uninstall” option to make it. Then you can go to Google Play Store to reinstall the app after a few minutes.

Why are my apps crashing in the background?

One reason could be low memory or a weak chipset. Apps can also crash if they are not coded properly. Sometimes the reason could also be the custom skin on your Android phone.


1 Answers

See if you are missing this in the activity declaration in your manifest

android:configChanges="orientation|screenSize|keyboardHidden"
like image 156
AndroidMechanic - Viral Patel Avatar answered Sep 24 '22 23:09

AndroidMechanic - Viral Patel