私はCAMERA2 APIとSQLiteに苦しんでいます。ビデオがキャプチャされた後、クリップ名はdbに保存されなければなりません。これは私が把握しようとしているステップです。ビデオキャプチャクラス1.In仮想メソッドを呼び出そうとすると、SQLite
、dbActivityクラスはデシベル
public class VS_dbActivity extends AppCompatActivity{
private VS_dbConfig dbHelp;
public String sendData(String filePath) {
dbHelp = new VS_dbConfig(this);
SQLiteDatabase db = dbHelp.getWritableDatabase();
// some example
}
}
にmNextVideoAbsolutePath
を送信しようと2.Inデシベル活動クラス
VS_dbActivity dbActivity = new VS_dbActivity();
String msg = dbActivity.sendData(mNextVideoAbsolutePath);
のために呼び出します。上記のクラスでは、コンストラクタを追加しませんでした。コンストラクタを追加する必要がありますか?コンストラクタを使用しなかった場合はどうなりますか?私は
SQLiteDatabase db = dbHelp.getWritableDatabase();
エラー・ログには、エラー表示されます。このアプリを実行してい
:---- >>
FATAL EXCEPTION: main
Process: com.android.ejsoft.video_upload_000web, PID: 334
java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase android.content.Context.openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase$CursorFactory, android.database.DatabaseErrorHandler)' on a null object reference
at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:274)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
at com.android.ejsoft.video_upload_000web.dbManage.VS_dbActivity.sendData(VS_dbActivity.java:28)
at com.android.ejsoft.video_upload_000web.Camera2VideoFragment.sendFilePath(Camera2VideoFragment.java:578)
at com.android.ejsoft.video_upload_000web.Camera2VideoFragment.access$1200(Camera2VideoFragment.java:60)
at com.android.ejsoft.video_upload_000web.Camera2VideoFragment$4$2.onInfo(Camera2VideoFragment.java:555)
at android.media.MediaRecorder$EventHandler.handleMessage(MediaRecorder.java:1159)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5753)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
は、取得するために、コンストラクタを実行せずに、とにかくそこではないです活動の文脈?貴重な時間をありがとう。
エラーログを置くことができますか? –
エラーログ@ king_abu1918を追加しました –
新しいアクティビティクラスを作成してメソッドを呼び出すことはできません。なぜあなたはそれが正しいと思いますか? –