Ich habe Probleme mit CAMERA2 API und SQLite. Nach dem aufgenommenen Video muss der Clip-Name in der db gespeichert werden. Das sind die Schritte, die ich versuche herauszufinden.Versuch, virtuelle Methode aufzurufen: SQLite
1.In der Videoaufnahme-Klasse wird für die db Aktivitäten Klasse aufrufen
VS_dbActivity dbActivity = new VS_dbActivity();
String msg = dbActivity.sendData(mNextVideoAbsolutePath);
2.In der dbActivity Klasse versucht mNextVideoAbsolutePath
in db
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
}
}
zu senden In der oben genannten Klasse habe ich den Konstruktor nicht hinzugefügt. Ist es notwendig, Konstruktor hinzuzufügen? Was passiert, wenn der Konstruktor nicht verwendet wurde?
Wenn ich diese App laufen bin es Fehler in
SQLiteDatabase db = dbHelp.getWritableDatabase();
Fehlerprotokoll angezeigt wird: ---- >>
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)
Gibt es ohnehin nicht ohne Konstruktor zu tun das für immer Kontext der Aktivität? Danke für deine wertvolle Zeit.
Können Sie das Fehlerprotokoll setzen? –
Ich habe Fehlerprotokoll @ king_abu1918 hinzugefügt –
Sie können nicht einfach eine neue Aktivitätsklasse erstellen und Methoden aufrufen. Warum denkst du das ist richtig? –