2014-03-17 2 views
0

Я играл с SDK в facebook. Попытка привлечь информацию о пользователе и изображениях и так далее. Проблема, с которой я сталкиваюсь, пытается получить профиль профиля для пользователя и установить его в моем собственном представлении.Исключение Nullpointer при настройке растрового изображения в Asynctask

Здесь идет:

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: [email protected] 
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) 

Был скрыт вокруг форума, и я не могу найти решение моей проблемы. Что бросает nullexception?

BR

+0

все, что находится на 'Wingman.java: 116', равно null, возможно, ваше изображение имеет вид – tyczj

+0

, возможно, битмап имеет значение null, когда выполняется onPost. – gkapagunta

+0

Как изображение может быть нулевым? Я передаю свое представление asyncTask и все. –

ответ

0

Исключение по адресу: rImgView.setImageBitmap (результат); Похоже, rImgView имеет значение null. Возможно, rootView передается не для правильной компоновки, где вы хотите, чтобы это было? Почему бы не просто финансировать RoundedImageView перед запуском AsyncTask и передать его вместо этого?

Смежные вопросы