abu*_*891 1 android facebook nullpointerexception
我最近在市场上发布了我的应用程序.我在两台设备和几台仿真器上进行了测试,效果很好.但是,我现在收到一些崩溃报告,其中包含以下错误:
java.lang.RuntimeException:将结果ResultInfo {who = null,request = 32665,result = -1,data = Intent {(has extras)}}传递给activity {com.eden.statusphere/com.eden.statussphere.FacebookConnect }:java.lang.NullPointerException
我只向FacebookConnect传递了一件事:一个字符串......这是代码.(我正在使用easyandroidfacebooksdk)
private OnClickListener FacebookonListener = new OnClickListener() {
public void onClick(View v) {
try{
ConnectivityManager cMgr = (ConnectivityManager) v.getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cMgr.getActiveNetworkInfo();
String status = netInfo.getState().toString();
if (status.equals("CONNECTED")) {
intent.putExtra(".myMsg",statusHolder);
startActivity(intent);
} else {
Toast.makeText(getApplicationContext(), "No connection available",
Toast.LENGTH_SHORT).show();
}
}
catch (Exception e) {
Toast.makeText(getApplicationContext(), "Connection refused",
Toast.LENGTH_SHORT).show();
}
}
};
Run Code Online (Sandbox Code Playgroud)
以上是onClickListener,statusHolder是一个传递给我的FacebookConnect活动的字符串.这是FacebookConnect中发生错误的部分:
public void loginSuccess(Facebook facebook) {
GraphApi graphApi= new GraphApi(facebook);
if(intent.getStringExtra(".myMsg")!="null"){
try {
graphApi.setStatus(intent.getStringExtra(".myMsg"));
fbManager.displayToast("Status posted!");
Intent myIntent = new Intent(this, mainActivity.class);
startActivityForResult(myIntent, 0);
} catch (EasyFacebookError e) {
e.toString();
}
} else {
fbManager.displayToast("Fatal error occured: Your device refuses to pass the information to Facebook.");
}
}
Run Code Online (Sandbox Code Playgroud)
我刚刚添加的if-else语句用于检查是否可能将intent传递为null,但无论如何我都会收到有关同一问题的崩溃报告.我已经把头发拉了一段时间了.有人有线索吗?它没有使用的一个设备是HTC Thunderbolt.
if(intent.getStringExtra(".myMsg")!="null"){
Run Code Online (Sandbox Code Playgroud)
您将String extra与字符串"null"进行比较,除非您传入的额外String恰好是常量字符串"null",否则它将始终失败.要解决此问题,您将使用对象引用的直接比较,而不是.equals().
你不想将它与价值 进行比较null吗?
if(intent.getStringExtra(".myMsg")!= null){
Run Code Online (Sandbox Code Playgroud)
请注意,正如您的代码当前所示,您的比较将失败,因此您将进入该try子句并最终调用
graphApi.setStatus(intent.getStringExtra(".myMsg"));
Run Code Online (Sandbox Code Playgroud)
返回的额外实际上是在哪里null.
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |