2015-01-04 4 views
0

이 문제는 스택 오버플로에서 많이 연구되었지만 문제가 지속됩니다. 나는 main 활동을 가지고 있으며 내 takeapicture 활동에 대해 startActivityForResult을 호출합니다. 여기 takeapicture 내 코드는 결과를 반환하는 것입니다 :이 프로그램을 실행할 때실패 전달 결과 결과 정보

private Camera.PictureCallback mPicture = new Camera.PictureCallback() { 

    @Override 
    public void onPictureTaken(byte[] data, Camera camera) { 
     pictureFile = null; 
     try { 
      pictureFile = createImageFile(1); 
     } catch (Exception e) {System.out.println(e.getCause()); 
      System.out.println("lol");} 
     if (pictureFile == null){ 
      System.out.println("lol"); 
      return; 
     } 

     try { 
      System.out.println(Arrays.toString(data)); 
      FileOutputStream fos = new FileOutputStream(pictureFile); 
      fos.write(data); 
      fos.close(); 
     } catch (FileNotFoundException e) { 
      System.out.println(e.getCause()); 
     } catch (IOException e) { 
      System.out.println(e.getCause()); 
     } 
     System.out.println(pictureFile.getAbsoluteFile()); 
     Intent intent = new Intent(); 
     intent.putExtra("SavedImageDirectory", pictureFile); 
     setResult(RESULT_OK, intent); 
     finish(); 
    } 
}; 

, 나는의 여분 SavedImageDirectory를 사용하는 첫 번째 줄에 다음과 같은 오류가 발생합니다 :

여분이있다처럼 보이는
java.lang.RuntimeException: Failure delivering result ResultInfo{... 
... 
Caused by: java.lang.NullPointerException 
.... 

a null vaue, 그러나 나는 그것이 잘못 될 수있는 곳을 보지 못했습니다. 어떤 팁? 미리 감사드립니다.

답변

0

같은 패키지 접두어 아닌 문자열을 포함해야한다라고? 그 여분에 File 객체를 설정하면 문제가 될 수 있으므로 String Extra로 값을 가져 오는 것은 NULL이됩니다.

는 내가 확실하지 오전하지만 난 그래서 당신은 getSerializableExtra()로 읽거나 단순히 추가

i.putExtra("SavedImageDirectory", pictureFile.getAbsolutePath()); 

또는 더 구체적으로에 파일 이름을 추가해야 putExtra("",File)putExtra()Serializable value 버전이 될 것이라고 생각 파일 이름을 추가 할 수도 있습니다.

i.putExtra("SavedImageDirectory", pictureFile.getAbsolutePath() + pictureFile.getName()); 

이렇게하면 String Extra로 읽을 수 있습니다.

0

Intent.putExtra (이름, 값)에 대한 모든 documention은 '이름'을 추가, getStringExtra 그()을 읽는 어떻게 "SavedImageDirectory"

+0

여전히 작동하지 않습니다. 패키지 접두어로 변경했지만 동일한 오류 메시지와 함께 문제가 지속됩니다. – SalmonKiller

관련 문제