我一直在玩facebook SDK。 试图提取有关用户和图像的信息等。 我遇到的问题是尝试为用户获取profilepicture并在我自己的自定义视图中设置它。
这里是:
View v = inflater.inflate(R.layout.wingman, container, false);
AsyncTaskRunner bitmapJob = new AsyncTaskRunner(main.getContext(),v);
bitmapJob.execute(GlobalVariables.getUser().getId());
这是我的asyncTaskRunner类:
私有类AsyncTaskRunner扩展了AsyncTask {
private Bitmap bitmap;
private Context mContext;
private View rootView;
public AsyncTaskRunner(Context context, View rootView){
this.mContext=context;
this.rootView=rootView;
}
@Override
protected Bitmap doInBackground(String... params) {
// TODO Auto-generated method stub
bitmap = null;
//Fetch facebook pic
URL image_value;
try {
image_value = new URL("http://graph.facebook.com/"+GlobalVariables.getUser().getId()+"/picture?width=350&height=350" );
bitmap = BitmapFactory.decodeStream(image_value.openConnection().getInputStream());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bitmap;
}
/* (non-Javadoc)
* @see android.os.AsyncTask#onPostExecute(java.lang.Object)
*/
@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
Log.d("Debug","onPostExecute");
RoundedImageView rImgView = (RoundedImageView)rootView.findViewById(R.id.roundedImageViewProfil);
Log.d("Debug","result: " + result);
if(result != null){
Log.d("Debug","Try to set");
rImgView.setImageBitmap(result);
}
else{
Log.d("Debug","didnt work");
rImgView.setImageResource(R.drawable.temp);
}
}
}
这是调试消息:
03-17 20:55:44.465: D/Debug(20080): result: android.graphics.Bitmap@42661550
03-17 20:55:44.465: D/Debug(20080): Try to set
03-17 20:55:44.465: D/AndroidRuntime(20080): Shutting down VM
03-17 20:55:44.465: W/dalvikvm(20080): threadid=1: thread exiting with uncaught exception (group=0x41540ba8)
03-17 20:55:44.465: E/AndroidRuntime(20080): FATAL EXCEPTION: main
03-17 20:55:44.465: E/AndroidRuntime(20080): Process: com.thorne.wingman, PID: 20080
03-17 20:55:44.465: E/AndroidRuntime(20080): java.lang.NullPointerException
03-17 20:55:44.465: E/AndroidRuntime(20080): at com.thorne.wingman.Wingman$AsyncTaskRunner.onPostExecute(Wingman.java:116)
03-17 20:55:44.465: E/AndroidRuntime(20080): at com.thorne.wingman.Wingman$AsyncTaskRunner.onPostExecute(Wingman.java:1)
03-17 20:55:44.465: E/AndroidRuntime(20080): at android.os.AsyncTask.finish(AsyncTask.java:632)
03-17 20:55:44.465: E/AndroidRuntime(20080): at android.os.AsyncTask.access$600(AsyncTask.java:177)
03-17 20:55:44.465: E/AndroidRuntime(20080): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
03-17 20:55:44.465: E/AndroidRuntime(20080): at android.os.Handler.dispatchMessage(Handler.java:102)
03-17 20:55:44.465: E/AndroidRuntime(20080): at android.os.Looper.loop(Looper.java:136)
03-17 20:55:44.465: E/AndroidRuntime(20080): at android.app.ActivityThread.main(ActivityThread.java:5017)
03-17 20:55:44.465: E/AndroidRuntime(20080): at java.lang.reflect.Method.invokeNative(Native Method)
03-17 20:55:44.465: E/AndroidRuntime(20080): at java.lang.reflect.Method.invoke(Method.java:515)
03-17 20:55:44.465: E/AndroidRuntime(20080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-17 20:55:44.465: E/AndroidRuntime(20080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-17 20:55:44.465: E/AndroidRuntime(20080): at dalvik.system.NativeStart.main(Native Method)
潜伏在论坛周围,我无法找到解决问题的方法。 是什么引起了人们的不安全感?
BR
答案 0 :(得分:0)
异常:rImgView.setImageBitmap(result); 看起来rImgView为null。 也许传入的rootView不是你想要的正确布局? 为什么不在启动AsyncTask之前为RoundedImageView提供资金并将其传入呢?