Facebook sdk, закодированный для android 2.2, не работает на android 4.0.4, показывая ошибку android.os.Networkonmainthread

Привет, я работаю над facebook api. Я просмотрел документацию на facebook и закодирован в соответствии с инструкциями. Этот код работает отлично в Android 2.1-3.2, но во время работы в android 4.0.4 он дает ошибку android.os.networkonmainthread . Я не понимаю, как писать ниже код с помощью AsynckTask или потоков (Painless thread). Пожалуйста, всем здесь Предложите мне, как закодировать, чтобы он мог выполняться на всех версиях android.Here мой код.

public class Facebook4 extends Activity { public static final String mAPP_ID = "222299217893177"; public Facebook mFacebook = new Facebook(mAPP_ID); private static final String FACEBOOK_PERMISSION = "publish_stream"; private SharedPreferences mPrefs; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_facebook4); ((ImageView)findViewById(R.id.facebookLogin)).setOnClickListener( loginButtonListener ); SessionStore.restore(mFacebook, this); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { mFacebook.authorizeCallback(requestCode, resultCode, data); } private OnClickListener loginButtonListener = new OnClickListener() { public void onClick( View v ) { if( !mFacebook.isSessionValid() ) { Toast.makeText(Facebook4.this, "Authorizing", Toast.LENGTH_SHORT).show(); mFacebook.authorize(Facebook4.this, new String[] {FACEBOOK_PERMISSION},Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener()); //startActivity(new Intent(FacebookLogin.this,MainActivity.class)); } else { Toast.makeText( Facebook4.this, "Has valid session", Toast.LENGTH_SHORT).show(); try { JSONObject json = Util.parseJson(mFacebook.request("me")); String facebookID = json.getString("id"); String firstName = json.getString("first_name"); String lastName = json.getString("last_name"); Toast.makeText(Facebook4.this, "You already have a valid session, " + firstName + " " + lastName + ". No need to re-authorize.", Toast.LENGTH_SHORT).show(); } catch( Exception error ) { Toast.makeText( Facebook4.this, error.toString(), Toast.LENGTH_SHORT).show(); } } //startActivity(new Intent(FacebookLogin.this,MainActivity.class)); } }; public final class LoginDialogListener implements DialogListener { public void onComplete(Bundle values) { try { //The user has logged in, so now you can query and use their Facebook info JSONObject json = Util.parseJson(mFacebook.request("me")); Log.i("id", json.getString("id")); Log.i("FirstName", json.getString("first_name")); Log.i("lastname", json.getString("last_name")); Log.i("email", json.getString("email")); Log.i("Name", json.getString("name")); Log.i("gender",json.getString("gender")); SessionStore.save(mFacebook, Facebook4.this); } catch( Exception error ) { Toast.makeText( Facebook4.this, error.toString(), Toast.LENGTH_SHORT).show(); Log.i("error", error.toString()); } } public void onFacebookError(FacebookError error) { Toast.makeText( Facebook4.this, "Something went wrong. Please try again.", Toast.LENGTH_LONG).show(); } public void onError(DialogError error) { Toast.makeText( Facebook4.this, "Something went wrong. Please try again.", Toast.LENGTH_LONG).show(); } public void onCancel() { Toast.makeText( Facebook4.this, "Something went wrong. Please try again.", Toast.LENGTH_LONG).show(); } } 

    Вы получаете эту ошибку, потому что выполняете сетевую операцию, например, обращаетесь к Facebook в основной теме пользовательского интерфейса.

    Чтобы исправить это наилучшим образом, переместите весь связанный с сетью код в отдельный поток или AsyncTask

    У меня та же проблема, что я делаю, когда я проверяю, что я манифест, это было так

      <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> 

    Я удалил targetSdkVersion

      <uses-sdk android:minSdkVersion="8" /> 

    И это сработало, я думаю, это поможет вам попробовать

    В более высоких api теперь вы не можете выполнять сетевую задачу в основном потоке. Запустите свой код в другом потоке, и исключение не наступит.