gpt4 book ai didi

android - 为 android 2.2 编码的 facebook sdk 无法在 android 4.0.4 上运行,显示错误 android.os.Networkonmainthread

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:12:37 24 4
gpt4 key购买 nike

您好,我正在研究 facebook api。我已经阅读了 facebook 文档并按照其中的说明进行了编码。下面的代码在 android 2.1-3.2 中运行良好,但是在 android 4.0.4 中运行时出现错误 android.os.networkonmainthread。我不知道如何使用 AsynckTask 或线程(无痛线程)编写下面的代码。请这里的任何人建议我如何编码,以便它可以在所有版本的 android 上执行。这是我的代码。

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();
}
}

最佳答案

我有同样的问题,当我检查我的 list 时,它是这样的

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

我删除了 targetSdkVersion

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

它奏效了,我认为它会帮助你尝试

关于android - 为 android 2.2 编码的 facebook sdk 无法在 android 4.0.4 上运行,显示错误 android.os.Networkonmainthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com