尝试创建SQLite数据库时,我收到以下LogCat异常:
引起:android.database.sqlite.SQLiteException:无法将只读数据库从版本0升级到1
这是我的代码:
import static android.provider.BaseColumns._ID;
import static org.inetizen.university_timetable.Constants.DAY_OF_WEEK;
import static org.inetizen.university_timetable.Constants.DURATION;
import static org.inetizen.university_timetable.Constants.MODULE_CODE;
import static org.inetizen.university_timetable.Constants.ROOM;
import static org.inetizen.university_timetable.Constants.START_TIME;
import static org.inetizen.university_timetable.Constants.TABLE_NAME;
import static org.inetizen.university_timetable.Constants.TYPE_OF_SESSION;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class TimeTableData extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "timetable.db";
private static final int DATABASE_VERSION = 1;
/** Create a helper object for the TimeTable database **/
public TimeTableData(Context ctx) {
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE …Run Code Online (Sandbox Code Playgroud) 这个标题可能听起来有点疯狂,但这让我感到困惑.我的app大量使用本地数据库操作.正如Android文档和一些博客中所建议的那样,我扩展了SQLiteOpenHelper类并在那里定义了所有数据库操作.由于我的一些数据库操作在线程中执行,因此打开和关闭数据库会导致一些操作IllegalStateExceptions.所以,我做我的助手DB作为Singleton它解决了这些问题,也摆脱的open和close运营的每一个DB行动.现在一切似乎工作正常,即使我从未关闭数据库.
onDestroy主要活动还是其他地方?嘿所有我是一个新手安卓,并希望对此有所帮助?
android.database.sqlite.SQLiteException:没有这样的列:asd :,编译时:DELETE FROM标签WHERE name = asd
这是我面临的错误,这是代码:
这是DBhelper中的方法:
/**
* Delete a label table
* */
public void deleteLabel(String label) {
SQLiteDatabase db = this.getWritableDatabase();
// ContentValues values = new ContentValues();
// values.remove(label);
// Deleting Row
db.delete(TABLE_LABELS, KEY_NAME + "=" + label, null);
db.close(); // Closing database connection
}
Run Code Online (Sandbox Code Playgroud)
这是调用该方法的主要Activity代码:
// for spinner onItemListener
// and here is what label is
final String label = parent.getItemAtPosition(position).toString();
Button dialogDeletelButton = (Button) dialog
.findViewById(R.id.deleteButton);
dialogDeletelButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View …Run Code Online (Sandbox Code Playgroud) 在Android Jellybean 4.1上是否有可能逃避LIKE通配符并仍然喜欢使用索引?
使用:
where field like 'xyz\_abc'
Run Code Online (Sandbox Code Playgroud)
而不是:
where field like 'xyz_abc'
Run Code Online (Sandbox Code Playgroud)
逃避通配符是否适用于Android?如果通配符被转义,它还会使用索引吗?
我目前正在做的是:
where field like 'xyz_abc' and lower(field) = lower('xyz_abc')
Run Code Online (Sandbox Code Playgroud)
由于通配符,这是非常低效的.
谢谢
使用SQLiteDatabase作为Closeable时出现此错误
我有一个示例项目来重新创建它:
https://github.com/blundell/SQLDatabaseError
使用扩展SQLiteOpenHelper的类:
public class DatabaseHelper extends SQLiteOpenHelper {
....
public void openAndCloseDatabase() {
SQLiteDatabase database = getWritableDatabase();
close(database);
}
private void close(Closeable database) {
try {
if (database != null) {
database.close();
}
} catch (Exception e) {
Log.e("Error", "Oh no!", e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
12-14 12:23:43.719: E/AndroidRuntime(5179): FATAL EXCEPTION: main
12-14 12:23:43.719: E/AndroidRuntime(5179): java.lang.IncompatibleClassChangeError: interface not implemented
12-14 12:23:43.719: E/AndroidRuntime(5179): at com.blundell.sqldatabasecursorerror.DatabaseHelper.close(DatabaseHelper.java:35)
12-14 12:23:43.719: E/AndroidRuntime(5179): at com.blundell.sqldatabasecursorerror.DatabaseHelper.openAndCloseDatabase(DatabaseHelper.java:29)
12-14 12:23:43.719: E/AndroidRuntime(5179): …Run Code Online (Sandbox Code Playgroud) 我是Android开发的新手.
目前,我正在开发一个拥有大量数据的Android应用程序.
所以我认为我应该在本地存储一些这些数据.
我有一个有2个表的数据库.
表-1的大小是:4.5 MB表-2的大小是:目前3.5 MB.
即完全约8.0 MB,但未来的数据库大小可以增加,可能达到10 MB.
表-1:行(14927)和列(17)表-2:行(9903)和列(38)
我怀疑的是,我可以在Android应用程序中本地存储这么多数据,或者应用程序的速度可以受其影响.
我不想将这些数据存储在外部存储中.我无法将其存储在服务器数据库中,因为我必须在应用程序中多次使用这些数据.而其他数据在服务器上,因为它必须集中使用.
这是我的观点.但请给我你的建议.
如果有这么大的数据库该怎么办.
请帮我.提前致谢...:)
嗨,我有以下问题:
data.clear();
data.addAll(datasource.getFilesInFolder()); //gets the data from Sqlite database
adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
生成此logCat输出:
12-19 14:34:30.864: W/Binder(986): Caught a RuntimeException from the binder stub implementation.
12-19 14:34:30.864: W/Binder(986): java.lang.NullPointerException
12-19 14:34:30.864: W/Binder(986): at android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
12-19 14:34:30.864: W/Binder(986): at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
12-19 14:34:30.864: W/Binder(986): at android.os.Binder.execTransact(Binder.java:404)
12-19 14:34:30.864: W/Binder(986): at dalvik.system.NativeStart.run(Native Method)
12-19 14:34:30.864: W/InputMethodManagerService(757): Got RemoteException sending setActive(false) notification to pid 30040 uid 10174
Run Code Online (Sandbox Code Playgroud)
这个例外导致胜利死亡......
好吧,我意识到也许是反过来,WIN DEATH导致这个日志输出,因为在日志WINDEATH之前来了,那么我不知道为什么windeath会发生.
我的适配器是扩展BaseAdapter,没有什么特别之处.以下是非常奇怪的:
提到的代码片段位于自定义侦听器中,该侦听器由另一个类触发.当我将有问题的部分放在听众之外时,它运作良好.
我的Caught a RuntimeException from the binder stub implementation意思是?这可能是数据库的问题吗?或者也许是我的自定义听众?任何人都知道什么是错的?
我有一个应用程序,用户通过点击Imageview并设置图像和从相机拍摄新照片来添加图像.我想将该设置图像存储到sqlite数据库中.
**AddkeyEventdetail.java**
package com.example.kidsfinal;
import java.util.Calendar;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.DialogFragment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import com.example.slidingmenuexample.R;
public class AddChildHoodEventActivity extends SmartActivity {
ImageView ivChildPics;
EditText edtEventDate, edtEventDetails;
Button btnEventDetailSubmit, btnopenCamera;
Spinner spinnerSelectChild;
Bitmap bmp;
Calendar calendar = Calendar.getInstance();
int mDay = calendar.get(Calendar.DAY_OF_MONTH), mMonth = calendar
.get(Calendar.MONTH), mYear = calendar.get(Calendar.YEAR) - 1;
@Override …Run Code Online (Sandbox Code Playgroud) 我有一个包含三个字段的listview,但我不知道如何保存我的listview android并在用户打开应用程序并将其显示时将其取回.
我想显示listview中保存的数据,我必须保存用户输入列表视图的新数据.
我过去一直在为大多数项目使用SugarDB.它很容易使用并且满足了我的大多数要求,但由于该项目已被放弃,因此决定寻找替代方案,而房间似乎是最佳选择.
然而,一些基本的东西在Room中相当混乱.My Object使用Gson填充来自Web服务的数据,例如链接到其他对象.例如,请考虑以下类:
@Entity
public class TestModel
{
@PrimaryKey(autoGenerate = true)
private int id;
private String name;
private String age;
private List<Book> issuedBooks;
}
public class Book
{
private String title;
private int ISBN;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我的第一个类被注释为实体,那么这会自动将其中引用的类视为实体吗?
如果我保存TestModel的对象,它会将带有它的Books列表保存到数据库中吗?
android-sqlite ×10
android ×9
sqlite ×2
android-room ×1
database ×1
imageview ×1
implements ×1
java ×1