Android没有这样的表例外
我开始了一个新项目。在这里,我想将数据保存到数据库中,但由于某些原因,我总是会遇到此异常。希望你能帮助我。 也许重要的是要知道所有这些都是在一个片段中运行的Android没有这样的表例外,android,database,sqlite,Android,Database,Sqlite,我开始了一个新项目。在这里,我想将数据保存到数据库中,但由于某些原因,我总是会遇到此异常。希望你能帮助我。 也许重要的是要知道所有这些都是在一个片段中运行的 04-04 20:06:39.535 20756-20756/de.company.packageE/SQLiteLog﹕ (1) no such table: trailinfo 04-04 20:06:39.625 20756-20756/de.company.packageE/SQLiteDatabase﹕ Error inser
04-04 20:06:39.535 20756-20756/de.company.packageE/SQLiteLog﹕ (1) no such table: trailinfo
04-04 20:06:39.625 20756-20756/de.company.packageE/SQLiteDatabase﹕ Error inserting startzeit=1428170497482 ort_lat=47.8563527 ort_lng=11.8006212
android.database.sqlite.SQLiteException: no such table: trailinfo (code 1): , while compiling: INSERT INTO trailinfo(startzeit,ort_lat,ort_lng) VALUES (?,?,?)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:892)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:503)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:726)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1568)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1440)
at de.work4dogs.TheMantrailingApp.RecordTrailFragment.trackingStart(RecordTrailFragment.java:213)
at de.work4dogs.TheMantrailingApp.RecordTrailFragment.onClick(RecordTrailFragment.java:268)
at android.view.View.performClick(View.java:4442)
at android.view.View$PerformClick.run(View.java:18473)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5105)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
at dalvik.system.NativeStart.main(Native Method)
至少在这里,我想与数据库进行交互:
TrailInfoDbHelper dbTrailInfoHelper;
private SQLiteDatabase dbTrailInfo; // DB for Trail Info
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
dbTrailInfoHelper = new TrailInfoDbHelper(getActivity());
dbTrailInfo = dbTrailInfoHelper.getWritableDatabase(); // WritableDatabase for the TrailInfo
}
private void trackingStart() {
// Getting start Values for new Trail
long startTime = c.getTime().getTime(); // The Time when the Trail was started
// Write the Data into ContentValue
ContentValues values = new ContentValues();
values.put(TrailInfo.COLUMN_NAME_TRAILINFO_STARTZEIT, startTime);
// Store Data in Database and recieve the TrailID
Id = dbTrailInfo.insert(TrailInfo.TABLE_NAME, null, values);
Toast.makeText(getActivity(), "New ID: " + String.valueOf(trailId), Toast.LENGTH_SHORT).show();
}
定义所有静态的代码
import android.provider.BaseColumns;
public class TrailContract {
public TrailContract() {}
public static abstract class TrailPoints implements BaseColumns {
public static final String TABLE_NAME = "trailpoints";
public static final String COLUMN_NAME_TRAILPOINTS_TRAILID = "trailid";
public static final String COLUMN_NAME_TRAILPOINTS_TIME = "time";
public static final String COLUMN_NAME_TRAILPOINTS_LAT = "lat";
public static final String COLUMN_NAME_TRAILPOINTS_LNG = "lng";
}
public static abstract class TrailInfo implements BaseColumns {
public static final String TABLE_NAME = "trailinfo";
public static final String COLUMN_NAME_TRAILINFO_SUCHHUND = "suchhund";
public static final String COLUMN_NAME_TRAILINFO_AUSLEGEZEIT = "auslegezeit";
public static final String COLUMN_NAME_TRAILINFO_STARTZEIT = "startzeit";
public static final String COLUMN_NAME_TRAILINFO_ENDZEIT = "endzeit";
public static final String COLUMN_NAME_TRAILINFO_ADRESSE = "adresse";
public static final String COLUMN_NAME_TRAILINFO_ORT_LAT = "ort_lat";
public static final String COLUMN_NAME_TRAILINFO_ORT_LNG = "ort_lng";
public static final String COLUMN_NAME_TRAILINFO_RUNNER = "runner";
public static final String COLUMN_NAME_TRAILINFO_BEGLEITPERSON = "begleitperson";
public static final String COLUMN_NAME_TRAILINFO_TRAILLEGER = "trailleger";
public static final String COLUMN_NAME_TRAILINFO_TRAILLEGER_DETAILS = "trailleger_details";
public static final String COLUMN_NAME_TRAILINFO_GERUCHSTRAEGER = "geruchstraeger";
public static final String COLUMN_NAME_TRAILINFO_GERUCHSTRAEGER_DETAILS = "geruchstraeger_details";
public static final String COLUMN_NAME_TRAILINFO_ABGANG = "abgang";
public static final String COLUMN_NAME_TRAILINFO_UMGEBUNG = "umgebung";
public static final String COLUMN_NAME_TRAILINFO_WITTERUNG = "witterung";
public static final String COLUMN_NAME_TRAILINFO_TEMPERATUR = "temperatur";
public static final String COLUMN_NAME_TRAILINFO_BODEN = "boden";
public static final String COLUMN_NAME_TRAILINFO_UEBUNGSSCHWERPUNKTE = "uebungsschwerpunkte";
public static final String COLUMN_NAME_TRAILINFO_UEBUNGSSCHWERPUNKTE_DETAILS = "uebungsschwerpunkte_details";
public static final String COLUMN_NAME_TRAILINFO_SCHWERPUNKT_BEWAELTIGT = "schwerpunkt_bewaeltigt";
public static final String COLUMN_NAME_TRAILINFO_MOTIVATION_DES_HUNDES = "motivation_des_hundes";
public static final String COLUMN_NAME_TRAILINFO_TEAMARBEIT = "teamarbeit";
public static final String COLUMN_NAME_TRAILINFO_BLIND = "blind";
public static final String COLUMN_NAME_TRAILINFO_LAENGE = "laenge";
}
}
你试过其他类似问题的解决方案吗?我把代码贴在上面@Der定义的地方Golem@Selvin是的,我尝试了我找到的所有解决方案,但没有一个有效公共静态最终int数据库_VERSION=1。。。我不这么认为。。。同时写下你试图解决的问题。。。类似的问题在一周内被问了10次,试图通过增加数据库版本、重新安装应用程序和在活动中初始化数据库来解决。但如果我是对的,则不会创建数据库,因为不会调用OnCreate
import android.provider.BaseColumns;
public class TrailContract {
public TrailContract() {}
public static abstract class TrailPoints implements BaseColumns {
public static final String TABLE_NAME = "trailpoints";
public static final String COLUMN_NAME_TRAILPOINTS_TRAILID = "trailid";
public static final String COLUMN_NAME_TRAILPOINTS_TIME = "time";
public static final String COLUMN_NAME_TRAILPOINTS_LAT = "lat";
public static final String COLUMN_NAME_TRAILPOINTS_LNG = "lng";
}
public static abstract class TrailInfo implements BaseColumns {
public static final String TABLE_NAME = "trailinfo";
public static final String COLUMN_NAME_TRAILINFO_SUCHHUND = "suchhund";
public static final String COLUMN_NAME_TRAILINFO_AUSLEGEZEIT = "auslegezeit";
public static final String COLUMN_NAME_TRAILINFO_STARTZEIT = "startzeit";
public static final String COLUMN_NAME_TRAILINFO_ENDZEIT = "endzeit";
public static final String COLUMN_NAME_TRAILINFO_ADRESSE = "adresse";
public static final String COLUMN_NAME_TRAILINFO_ORT_LAT = "ort_lat";
public static final String COLUMN_NAME_TRAILINFO_ORT_LNG = "ort_lng";
public static final String COLUMN_NAME_TRAILINFO_RUNNER = "runner";
public static final String COLUMN_NAME_TRAILINFO_BEGLEITPERSON = "begleitperson";
public static final String COLUMN_NAME_TRAILINFO_TRAILLEGER = "trailleger";
public static final String COLUMN_NAME_TRAILINFO_TRAILLEGER_DETAILS = "trailleger_details";
public static final String COLUMN_NAME_TRAILINFO_GERUCHSTRAEGER = "geruchstraeger";
public static final String COLUMN_NAME_TRAILINFO_GERUCHSTRAEGER_DETAILS = "geruchstraeger_details";
public static final String COLUMN_NAME_TRAILINFO_ABGANG = "abgang";
public static final String COLUMN_NAME_TRAILINFO_UMGEBUNG = "umgebung";
public static final String COLUMN_NAME_TRAILINFO_WITTERUNG = "witterung";
public static final String COLUMN_NAME_TRAILINFO_TEMPERATUR = "temperatur";
public static final String COLUMN_NAME_TRAILINFO_BODEN = "boden";
public static final String COLUMN_NAME_TRAILINFO_UEBUNGSSCHWERPUNKTE = "uebungsschwerpunkte";
public static final String COLUMN_NAME_TRAILINFO_UEBUNGSSCHWERPUNKTE_DETAILS = "uebungsschwerpunkte_details";
public static final String COLUMN_NAME_TRAILINFO_SCHWERPUNKT_BEWAELTIGT = "schwerpunkt_bewaeltigt";
public static final String COLUMN_NAME_TRAILINFO_MOTIVATION_DES_HUNDES = "motivation_des_hundes";
public static final String COLUMN_NAME_TRAILINFO_TEAMARBEIT = "teamarbeit";
public static final String COLUMN_NAME_TRAILINFO_BLIND = "blind";
public static final String COLUMN_NAME_TRAILINFO_LAENGE = "laenge";
}
}