2012-04-24 18 views
0

私は、データベースから名前でカメラを開始したいと私は3つのデータベースを持っている.. 私はこのようなコードがあります:エラー致命的な例外:メイン

public void startCamera() 
{ 
    long tim=System.currentTimeMillis(); 
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss"); 
    String curTime =df.format(tim); 
    System.out.println("Time : " + curTime); 

    Cursor c = helper.getKomp(almagId2); 
    Cursor ca = helper.getSat(almagId); 
    Cursor cb = helper.getUlok(almagId1); 
    if(c.moveToFirst()){ 
     fileName =c.getString(1)+"_"+"kanan"+"_"+System.currentTimeMillis()+ ".jpg"; 
    }else if(ca.moveToFirst()){ 
     fileName =ca.getString(1)+"_"+"kanan"+"_"+System.currentTimeMillis()+ ".jpg"; 
    }else if(cb.moveToFirst()){ 
     fileName =cb.getString(1)+"_"+"kanan"+"_"+System.currentTimeMillis()+ ".jpg"; 
    } 

    _path=Environment.getExternalStorageDirectory().toString() + "/DCIM/Camera/"; 


    file = new File(_path, fileName); 
    try { 
    file.createNewFile(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    }    
    System.out.println(file); 
    Uri outputFileUri = Uri.fromFile(file); 
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
    startActivityForResult(intent, IMAGE_CAPTURE); 

    SQLiteDatabase db = helper.getWritableDatabase(); 
    if(c.moveToFirst()){ 
     db.execSQL("insert into image (kdstore,image1,tgl_buat) values ('"+c.getString(1)+"','"+file+"','"+curTime+"')"); 
    }else if(ca.moveToFirst()){ 
     db.execSQL("insert into image (kdstore,image1,tgl_buat) values ('"+ca.getString(1)+"','"+file+"','"+curTime+"')"); 
    }else if(cb.moveToFirst()){ 
     db.execSQL("insert into image (kdstore,image1,tgl_buat) values ('"+cb.getString(1)+"','"+file+"','"+curTime+"')"); 
    } 
    db.close(); 


} 

をしかし、私は、メソッドのstartCameraを呼び出したいとき、私はのようなエラーが出ますこの:私はこれを解決する方法を

04-24 09:29:34.902: ERROR/AndroidRuntime(9411): FATAL EXCEPTION: main 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411): java.lang.NullPointerException 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at java.io.File.<init>(File.java:168) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at com.sat.alfaloc.Camera.startCamera1(Camera.java:153) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at com.sat.alfaloc.Camera.onClick(Camera.java:319) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at android.view.View.performClick(View.java:2408) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at android.view.View$PerformClick.run(View.java:8816) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at android.os.Handler.handleCallback(Handler.java:587) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at android.os.Handler.dispatchMessage(Handler.java:92) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at android.os.Looper.loop(Looper.java:123) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at java.lang.reflect.Method.invoke(Method.java:521) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
04-24 09:29:34.902: ERROR/AndroidRuntime(9411):  at dalvik.system.NativeStart.main(Native Method) 

は??背中:)

のコードのように編集した上でフィードをありがとう:

public void startCamera1() 
{ 
    long tim=System.currentTimeMillis(); 
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss"); 
    String curTime =df.format(tim); 
    System.out.println("Time : " + curTime); 
    SQLiteDatabase db = helper.getWritableDatabase(); 

    Cursor c = helper.getKomp(almagId2); 
    Cursor ca = helper.getSat(almagId); 
    Cursor cb = helper.getUlok(almagId1); 
    if(c.moveToFirst()){ 
     fileName =c.getString(1)+"_"+"kiri"+"_"+System.currentTimeMillis()+ ".jpg"; 
     _path=Environment.getExternalStorageDirectory().toString() + "/DCIM/Camera/"; 
     file = new File(_path, fileName); 
     try { 
     file.createNewFile(); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 
     System.out.println(file); 

     Uri outputFileUri = Uri.fromFile(file); 
     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     startActivityForResult(intent, IMAGE_CAPTURE1); 
     db.execSQL("insert into image (kdstore,image1,tgl_buat) values ('"+c.getString(1)+"','"+file+"','"+curTime+"')"); 
    } 
    if(ca.moveToFirst()){ 
     fileName =ca.getString(1)+"_"+"kiri"+"_"+System.currentTimeMillis()+ ".jpg"; 
     file = new File(_path, fileName); 
     try { 
     file.createNewFile(); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 
     System.out.println(file); 

     Uri outputFileUri = Uri.fromFile(file); 
     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     startActivityForResult(intent, IMAGE_CAPTURE1); 
     db.execSQL("insert into image (kdstore,image1,tgl_buat) values ('"+ca.getString(1)+"','"+file+"','"+curTime+"')"); 
    } 
    if(cb.moveToFirst()){ 
     fileName =cb.getString(1)+"_"+"kiri"+"_"+System.currentTimeMillis()+ ".jpg"; 
     file = new File(_path, fileName); 
     try { 
     file.createNewFile(); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 
     System.out.println(file); 

     Uri outputFileUri = Uri.fromFile(file); 
     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     startActivityForResult(intent, IMAGE_CAPTURE1); 
     db.execSQL("insert into image (kdstore,image1,tgl_buat) values ('"+cb.getString(1)+"','"+file+"','"+curTime+"')"); 
    } 

    db.close(); 

} 

これはエラーではありませんが、アクティビティの呼び出しがあなたに感謝??それを解決work..howしません:)

+0

この行を削除してくださいSystem.out.println(file); –

+0

@Agarwal私は削除しようとしていますが、この行にもエラーがあります。 'file = new File(_path、fileName);' – akubabas

+0

@ Agarwalのコメントは無視されます。 –

答えて

0

例外はFileコンストラクタの引数のいずれかがNULLであることを述べています。それはpath_になることはできません。これは以前の例外につながったからです。それはfilename_でなければなりません。あなたの三方のif-else支店のどれが真でないだろう、と何もなかった場合は、その後、filename_がnullになるという可能性が可能になります - そのためには何が起こっているかでなければなりません。条件のいずれも真でない場合、デフォルトのファイル名を持つことができますか。elseifなしでチェーンの最後に追加できますか?

+0

私は上記のように私のコードを編集します。エラーはありませんが、カメラのアクティビティは起動しません。私はそれを解決しますか?ありがとうございました:) – akubabas

+0

これは驚くべきことではありません。私たちは既に 'if'条件のそれぞれが偽と評価されたと疑っています。これでコードが実行されないようになりました。だから今は実行されません。 'Cursor'はすべて空であるようです。戻って、その「ヘルパー」の方法を見て、あなたの質問に何か問題があるかどうかを判断してください。 –

+0

はい、私のクエリを操作しようとしましたそして、それは仕事です!!ありがとう!!ありがとう!! :) – akubabas

関連する問題