Мисля, че проблемът ви е с реда на колоните и най-важното ограничаването на псевдонима за колоната rowid, във вашия случай Id колона (Id INTEGER PRIMARY KEY AUTOINCREMENT
дефинира Id като псевдоним на колоната rowid ).
- Обърнете внимание, че другите колони могат да съхраняват всяка стойност според :-
Всяка колона в база данни на SQLite версия 3, с изключение на колона INTEGER PRIMARYKEY, може да се използва за съхраняване на стойност от всеки клас за съхранение.
- Типове данни в SQLite версия 3
Такава колона може да съхранява само цяло число. String sql = "INSERT INTO PHOTO VALUES(NULL,?,?,?,?)";
се равнява на вмъкване на стойности според :-
- NULL в името колона
- име, както е предадено, в lat колона
- lat, както е предадено, в lon колона
- lon, както е предадено, в изображението колона
- изображение, както е предадено, в колоната Id (чао[] не може да се съхранява в колона Id)
Можете да коригирате това, като предоставите имената на колоните или като пренаредите колоните, така че да съответстват на реда, в който са били дефинирани (първото може би е по-добрата практика).
Като такова едно от следните трябва да реши проблема:-
String sql = "INSERT INTO PHOTO (Id, name, lat, lon, image) VALUES(NULL,?,?,?,?)";
или :-
String sql = "INSERT INTO PHOTO VALUES(?,?,?,?,NULL)";