Je suis aux prises avec l'API CAMERA2 et SQLite. Après la capture de la vidéo, le nom du clip doit être enregistré dans la base de données. Ce sont les étapes que j'essaie de comprendre.Tentative d'invocation de la méthode virtuelle: SQLite
1.In la classe de capture vidéo, appellera pour les activités db classe
VS_dbActivity dbActivity = new VS_dbActivity();
String msg = dbActivity.sendData(mNextVideoAbsolutePath);
2.In la classe dbActivity essayant d'envoyer mNextVideoAbsolutePath
dans 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
}
}
Dans la classe mentionnée ci-dessus, je n'ai pas ajouté le constructeur. Est-il nécessaire d'ajouter un constructeur? Que se passe-t-il si vous n'avez pas utilisé le constructeur.
Quand je lance cette application, il apparaît erreur dans
SQLiteDatabase db = dbHelp.getWritableDatabase();
journal d'erreur: ---- >>
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)
est-ce pas là de toute façon sans faire le constructeur pour obtenir la contexte de l'activité? Merci pour votre temps précieux.
Pouvez-vous mettre le journal des erreurs? –
J'ai ajouté le journal d'erreur @ king_abu1918 –
Vous ne pouvez pas simplement créer une nouvelle classe Activity et appeler des méthodes. Pourquoi pensez-vous que c'est correct? –