2011-12-28 3 views
0

비트 맵 이미지를 PNG 형식의 sdcard에 저장하려고 할 때 코드가 항상 아래에 설명 된 오류를 반환하지만 그 이유를 모르겠습니다. 저에게 맞는 해결책을 제안 해주십시오.android의 비트 맵을 sdcard에 저장하는 중 오류가 발생했습니다.

오류 스택 :

12-28 12:50:58.765: ERROR/AndroidRuntime(16977): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.greetingApp.common/com.greetingApp.common.Greeting}: java.lang.NullPointerException 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at android.os.Looper.loop(Looper.java:123) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at java.lang.reflect.Method.invoke(Method.java:521) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at dalvik.system.NativeStart.main(Native Method) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977): Caused by: java.lang.NullPointerException 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at com.greetingApp.common.Greeting.SaveData(Greeting.java:138) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at com.greetingApp.common.Greeting.onCreate(Greeting.java:78) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-28 12:50:58.765: ERROR/AndroidRuntime(16977):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 

코드 : 사전에

protected void SaveData() 
     { 


      FrameLayout view = (FrameLayout)findViewById(R.id.frameLayout2); 
      view.setDrawingCacheEnabled(true); 
      view.buildDrawingCache(); 
      bm = view.getDrawingCache(); 

      OutputStream outStream = null; 
      File file = new File(extStorageDirectory, "er.PNG"); 
      try { 
      outStream = new FileOutputStream(file); 
      bm.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
      outStream.flush(); 
      outStream.close(); 

      //Toast.makeText(AndroidWebImage.this, "Saved", Toast.LENGTH_LONG).show(); 

      } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      //Toast.makeText(AndroidWebImage.this, e.toString(), Toast.LENGTH_LONG).show(); 
      } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      // Toast.makeText(AndroidWebImage.this, e.toString(), Toast.LENGTH_LONG).show(); 

      // TODO Auto-generated method stub 

     } 

감사

+0

당신은 어떤 문제가 마십시오 이제 당신이 FrameLayout의이보기 인스턴스를 사용할 수 있습니다에서 onCreate 내부의 ID를 가져 와서 SaveData()

FrameLayout view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.your_xml); view = (FrameLayout)findViewById(R.id.frameLayout2); } 

에서 그것을 활용하는 Paresh, 당신이 만약 질문에 답하고 싶지는 않습니다. 아무 몸도 당신이 똑같이하도록 강요하지 않습니다. –

+1

어느 행이 138이고 onCreate()도 게시됩니다. –

답변

1

이 있는지 확인은하지 않아도 여기 널

FrameLayout view = (FrameLayout)findViewById(R.id.frameLayout2); 

은 또한 더 나은 SaveData()

+0

예. 나는 같은 일을했지만 오류는 똑같습니다. –

+0

어떤 줄에 오류가 있습니까? –

+0

원하는보기에 대한 비트 맵을 가져올 수 없습니다. –

관련 문제