Error java.lang.IllegalStateException: activity was destroyed

Below I tried to work with the SDK for Facebook, when I encountered this problem, every time you run the code below, I seem to get the error "java.lang.IllegalStateException: activity was destroyed", I think it is somehow connected with fragments, any thoughts?

11-02 15:24:29.212: E/AndroidRuntime(17034): FATAL EXCEPTION: main 11-02 15:24:29.212: E/AndroidRuntime(17034): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.facebooktest/com.example.facebooktest.FacebookTutorial}: java.lang.IllegalStateException: Activity has been destroyed 

Above is the error, and below is the code.

 package com.example.facebooktest; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.view.Menu; import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; import android.widget.TextView; import com.facebook.android.AsyncFacebookRunner; import com.facebook.android.Facebook; public class FacebookTutorial extends FragmentActivity { // --------- Facebook References ---------// private Fragment mainFragment; // application id from facebook.com/developers public static final String APP_ID = "434865303240706"; // log tag for any log.x statements public static final String TAG = "FACEBOOK CONNECT"; // permissions array private static final String[] PERMS = new String[] { "user_events" }; // facebook vars private Facebook mFacebook; private AsyncFacebookRunner mAsyncRunner; // id text view private TextView mText; public static final int LOGIN = Menu.FIRST; public static final int GET_EVENTS = Menu.FIRST + 1; public static final int GET_ID = Menu.FIRST + 2; protected void initLayout() { LinearLayout rootView = new LinearLayout(this.getApplicationContext()); rootView.setOrientation(LinearLayout.VERTICAL); this.mText = new TextView(this.getApplicationContext()); this.mText.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); rootView.addView(this.mText); this.setContentView(rootView); } // --------- Method called on create. ---------// public void onCreate(Bundle savedInstanceState) { if (savedInstanceState == null) { // Add the fragment on initial activity setup mainFragment = new Fragment(); getSupportFragmentManager().beginTransaction() .add(android.R.id.content, mainFragment).commit(); } else { // Or set the fragment from restored state info mainFragment = (Fragment) getSupportFragmentManager() .findFragmentById(android.R.id.content); } } } 
+4
source share
1 answer

Your onCreate missing super.onCreate(savedInstanceState); place it before the if and this should fix the problem.

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState == null) { // Add the fragment on initial activity setup mainFragment = new Fragment(); getSupportFragmentManager().beginTransaction() .add(android.R.id.content, mainFragment).commit(); } else { // Or set the fragment from restored state info mainFragment = (Fragment) getSupportFragmentManager() .findFragmentById(android.R.id.content); } } 
+17
source

Source: https://habr.com/ru/post/1443685/


All Articles