我正在使用以下代码在数据库中创建多个表.但是,我不明白为什么会出现这个问题.
private static final String TABLE_SMSFilter = "SMSFilter";
public void onCreate(SQLiteDatabase db)
{
Log.d("Test", "Control is in Oncreate()");
String CREATE_SMSSSCHEDULE_TABLE = "CREATE TABLE " + TABLE_SMSSchedule
+ "(" + KEY_ID + " INTEGER PRIMARY KEY autoincrement,"
+ KEY_NUMBER + " TEXT)";
String CREATE_PROFILE_SCHEDULE_TABLE = "CREATE TABLE "
+ TABLE_ProfileSchedule + "(" + ProfileSchedule_ID
+ " INTEGER PRIMARY KEY autoincrement,"
+ ProfileSchedule_NUMBER + " TEXT, "
+ ProfileSchedule_ProfileMode + " TEXT,"
+ ProfileSchedule_CalendarID + "INTEGER)";
String CREATE_SMS_FILTER_TABLE = "CREATE TABLE " …Run Code Online (Sandbox Code Playgroud) 我有一个依赖于SQLite的应用程序,数据由资源文件夹中的应用程序随附的xmls填充.
现在我意识到,当我必须在Google Play上推送更新并在XML中添加更多内容时.即使我将数据库版本从1更改为2.导入脚本也不会运行,因为共享首选项config_run值将设置为true.
有关如何处理这种情况的任何指示?
方案
我的应用流程
第二个案例
正如以下几个人所建议的那样,如果我尝试在SQLiteHelper的onUpgrade中将数据变为数据库,那么它将仅在MAinActivity中发生,因为我在SplashActivity中不打开Db连接并且也不会显示Dialog Progress.
我想在Android应用程序中设置一个计时器,该计时器将在每次15/30/45之后调用一个函数,并在用户登录时调用n分钟.但是当用户注销时它也会停止计时器.如果用户再次登录,计时器将从启动开始.我希望将该选项(15/30/45/n分钟)保存在数据库中,以便我可以在同步后更新列表.
定时器是一个好方法还是我需要使用报警服务?或者是否需要任何系统服务?
是否可以将本地电话数据库存储中的先前doc /文件更改为通过Web服务器接收的新文档?这样做需要系统服务吗?
我刚下载了GreenDao的新jar文件,以便为我正在构建的应用程序创建我的数据库.
在完成我的实体建模和它们之间的连接的所有过程之后,我尝试运行生成器项目,但是生成数据库的行出现了这个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: freemarker/template/ObjectWrapper
at com.glide.talk.glide.model.generator.Model.main(Model.java:29)
Caused by: java.lang.ClassNotFoundException: freemarker.template.ObjectWrapper
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more
Run Code Online (Sandbox Code Playgroud)
发生的行是:new DaoGenerator().generateAll(schema, src);我在buildpath和lib文件夹中只有greendao-generator-1.3.0.jar文件.
任何想法或解决方案都会非常有帮助.
ps 是否可以使用版本1.2中的freemaker.jar?
编辑:目前,我从sourceforge下载了这个版本,我希望这实际上是我需要使用的.
我试图通过在Android应用程序中已经存在且正常运行的数据库设置中实现加密来保护一些合理的数据.
我试着按照这个教程(http://sqlcipher.net/sqlcipher-for-android/)浏览了很多foruns,包括用于Cipher的google组.但是,我仍然不清楚SQLCipher如何工作以及如何调整我的代码以满足我的需求.
我下面这个实现的android系统数据库:http://www.vogella.com/articles/AndroidSQLite/#databasetutorial_database,这意味着我有SQLiteOpenHelper类的扩展和另一个类存储CRUD方法.
在这种情况下我应该如何使用SQLCipher?我应该在哪里定义密码?我应该在哪里使用loadLibs(上下文)?只在主要活动中?或者在访问数据库的每个活动中?
我觉得我差不多了,我只需要最后的推动来解决这个问题:P提前谢谢!
我的表结构是这样的,使用sqlite3
CREATE TABLE enghindi (eng TEXT,hindi TEXT)
Run Code Online (Sandbox Code Playgroud)
我有一个名为enghindi的表,其中有两列名为hindi,eng,我想合并eng列的记录,也可以用逗号分隔hindi单词
看下面的表看起来像

我想在下面看到这样的

我想用sqlite3查询做到这一点
我正在尝试根据ISBN从我的库存表中获取某些图书数据.但是,我收到一个错误:"尝试重新打开已经关闭的对象".只有当我单击一个listView对象,转到另一个屏幕,通过"finish()"返回到此页面,然后尝试单击另一个listView对象时,才会出现该错误.我提出的String searchEntries[] = InventoryAdapter.getInventoryEntriesByISBN(searchQuery, isbn[position]);从onClickListener以前的for循环之前onClickListener和现在的作品.
如果我通过"finish()"从另一个活动返回此活动后尝试getInventoryEntriesByISBN,为什么它不起作用?
SearchResultsScreen发生错误:
String searchEntries[] = InventoryAdapter.getInventoryEntriesByISBN(searchQuery, isbn[position]);
Run Code Online (Sandbox Code Playgroud)
并通过扩展,发生在InventoryAdapter:
Cursor cursor = db.rawQuery(query, new String[] {ISBN});
Run Code Online (Sandbox Code Playgroud)
SearchResultsScreen.java
// Set up search array
for(int i = 0; i < isbn.length; i++)
{
searchArray.add(new InventoryItem(isbn[i], InventoryAdapter.getTitleAndAuthorByISBN(isbn[i])));
}
Toast.makeText(getApplicationContext(), "searchArray.size()="+searchArray.size(), Toast.LENGTH_LONG).show();
// add data in custom adapter
adapter = new CustomAdapter(this, R.layout.list, searchArray);
ListView dataList = (ListView) findViewById(R.id.list);
dataList.setAdapter(adapter);
// On Click ========================================================
dataList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, …Run Code Online (Sandbox Code Playgroud) 我遇到以下错误:在整个应用程序中使用单个数据库对象从两个不同的线程访问数据库
数据库
'/data/data/msv_database.db' 的连接池无法授予与线程802的连接(连接:0活动,1空闲,0可用.
我正在编写一个Xamarin Android应用程序,并在尝试创建SQLite数据库时遇到错误.
这是我的代码:
string applicationFolderPath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "CanFindLocation");
string databaseFileName = System.IO.Path.Combine(applicationFolderPath, "CanFindLocation.db");
SQLite.SQLite3.Config(SQLite.SQLite3.ConfigOption.Serialized);
var db = new SQLiteConnection (databaseFileName);
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
SQLite.SQLiteException: Could not open database file: /data/data/com.xamarin.docs.android.mapsandlocationdemo2/files/CanFindLocation/CanFindLocation.db (CannotOpen)
Run Code Online (Sandbox Code Playgroud)
我有相同的代码在另一个Xamarin应用程序中工作,并想知道该异常是否与包的名称有关?
提前致谢
我们正在开发一个原生的Android应用程序(iOS和Web跟随),用户可以在其中协作创建相册.
当设备无法与服务器连接时,我们希望尽可能无缝地体验.在这个Hoodie博客中提到的东西,但Hoodie现在正在用于Web和iOS,我们现在正在寻找Android.
问题
在客户端维护专辑,朋友,图片(URL /本地,而不是位图)的数据.能够在以后将脱机创建/更新操作同步到服务器,并解决冲突.
目前的研究
习惯
使用Android同步适配器在服务器同步上在Android和MySQL上的SQLite中维护数据.然而,这可能是耗时的并且在启动时存在缺陷.
应该如何处理这个问题?
android offline-mode offline-caching offlineapps android-sqlite
android-sqlite ×10
android ×9
sqlite ×4
exception ×1
greendao ×1
mysql ×1
offline-mode ×1
offlineapps ×1
sql ×1
xamarin ×1