2015-02-13 3 views
0

Я разрабатывающей Android APP через Eclipse, и у меня возникают некоторые проблемы с поиском, что вызовет следующую ошибку:android.view.WindowLeaked после Intent камеры

Я звоню в ACTION_IMAGE_CAPTURE Intent, чтобы открыть камеру и ожидая изображения по результату. Итак:

Intent v_Intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
try 
{ 
    v_Intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(createImageFile())); 
} 
catch (IOException e) 
{ 
    Builder v_Builder = new AlertDialog.Builder(GroupPageActivity.this); 
    v_Builder.setIcon(android.R.drawable.ic_dialog_alert); 
    v_Builder.setTitle("Arquivo não Anexado"); 
    v_Builder.setMessage(R.string.cameraSaveErrorInfo).setNegativeButton("OK", null).show(); 
    e.printStackTrace(); 
    return; 
} 
v_Intent.putExtra("return-data", true); 
GroupPageActivity.this.startActivityForResult(v_Intent, IMAGE_CAMERA_REQUEST_ATTACHMENT_CODE); 

И ждет его здесь:

protected void onActivityResult(int p_Code, int p_Result, Intent p_Intent) 
    { 
    if (p_Result != RESULT_CANCELED) 
     { 
      switch (p_Code) 
      { 
      ... 
      case IMAGE_CAMERA_REQUEST_ATTACHMENT_CODE: 
       { 
        if (p_Intent != null) 
        { 
         Uri capturedImageUri = p_Intent.getData(); 
         //capturedImageUri = g_ImageUri; 
         if (capturedImageUri != null) 
         { 
          m_ImageUriList.add(capturedImageUri); 
          new CallAddThumbnails().execute(); 
         } 
         else { 
          Builder v_Builder = new AlertDialog.Builder(GroupPageActivity.this); 
          v_Builder.setIcon(android.R.drawable.ic_dialog_alert); 
          v_Builder.setTitle("Arquivo não Anexado"); 
          v_Builder.setMessage(R.string.cameraImageErrorInfo).setNegativeButton("OK", null).show(); 
         } 
        } 
        else 
        { 
         Uri capturedImageUri = Uri.parse(g_CurrentPhotoPath); 
         m_ImageUriList.add(capturedImageUri); 
         new CallAddThumbnails().execute(); 
        } 
        break; 
       } 
      }  
     } 
    } 

Я могу начать деятельность камеры, сделайте снимок, но, ИНОГДА, не всегда, я получаю это:

Activity MyApp.GroupPageActivity has leaked window [email protected] that was originally added here 
android.view.WindowLeaked: Activity MyApp.GroupPageActivity has leaked window [email protected] that was originally added here 
at android.view.ViewRoot.<init>(ViewRoot.java:294) 
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:184) 
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:127) 
at android.view.Window$LocalWindowManager.addView(Window.java:455) 
at android.app.Dialog.show(Dialog.java:272) 
at MyApp.GroupPageActivity$CallAddThumbnails.onPreExecute(GroupPageActivity.java:628) 
at android.os.AsyncTask.execute(AsyncTask.java:422) 
at MyApp.GroupPageActivity.onActivityResult(GroupPageActivity.java:416) 
at android.app.Activity.dispatchActivityResult(Activity.java:3975) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:2628) 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2207) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2235) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1768) 
at android.app.ActivityThread.access$1500(ActivityThread.java:155) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:999) 
at android.os.Handler.dispatchMessage(Handler.java:130) 
at android.os.Looper.loop(SourceFile:351) 
at android.app.ActivityThread.main(ActivityThread.java:3820) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:538) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727) 
at dalvik.system.NativeStart.main(Native Method) 

Звонок включен в эту группу. И я точно знаю, что когда это произойдет, он сработает перед вызовом onActivityResult.

Любые мысли?

PS .: Я получаю другое исключение брошено здесь:

Private Phone m_UserPhone = ConfigurationController.GetActiveNotNull(); 

Это член GroupPageActivity.

PS2 .: Я заметил, что отладочное соединение с Eclipse с устройством, которое я отлаживаю, заканчивается внутри камеры, когда я снимаю фотографию. Когда я подтвержу фотографию, она сработает.

+0

Что находится на линии 39 из DB.java? – iRuth

+0

Это бросок нового RuntimeException() внутри Catch для попытки, которая вызывается только при инициализации для настройки соединения с базой данных. Я наложил на него точку останова, и на попытке безуспешно это не остановилось. – tscarab

+0

Не могли бы вы разместить файл DB.java и указать, где строка 39 является причиной исключения? – iRuth

ответ

0

Удалите эту строку и один раз попробовать ...

v_Intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(createImageFile())); 

Это происходит из-за Ури просочилась исключение ... это лучше не передавать URI намерению для получения файла

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