我在demo中能操作成功成功,但是放到项目中就出错,权限已加,so包也加了。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
x.Ext.setDebug(BuildConfig.DEBUG);
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
.setDbName("logininfo.db")
.setDbDir(new File("/sdcard"))
.setDbVersion(2)
.setDbOpenListener(new DbManager.DbOpenListener() {
@Override
public void onDbOpened(DbManager db) {
db.getDatabase().enableWriteAheadLogging();
}
})
.setDbUpgradeListener(new DbManager.DbUpgradeListener() {
@Override
public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
// TODO: ...
// db.addColumn(...);
// db.dropTable(...);
// ...
// or
// db.dropDb();
}
});
DbManager db = x.getDb(daoConfig);
Member member =new Member();
member.setUsername("名字");
member.setMobile("136");
member.setUserCategory("1");
db = x.getDb(daoConfig);
try {
db.saveBindingId(member);
} catch (DbException e) {
e.printStackTrace();
}
try {
member = db.findFirst(Member.class);
System.out.println("name:" + member.getMobile());
} catch (DbException e) {
e.printStackTrace();
}
}
}
放在Application中,项目中要存储用户登录信息,就用框架里的,没想到出问题了,两天了都没解决。请大神们帮帮忙。
05-07 10:29:20.865: E/SQLiteLog(28430): (14) cannot open file at line 31278 of [2ef4f3a5b1]
05-07 10:29:20.865: E/SQLiteLog(28430): (14) os_unix.c:31278: (2) open(/sdcard/logininfo.db) -
05-07 10:29:20.867: E/SQLiteDatabase(28430): Failed to open database '/sdcard/logininfo.db'.
05-07 10:29:20.867: E/SQLiteDatabase(28430): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:207)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:191)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:709)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:702)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at org.xutils.db.DbManagerImpl.openOrCreateDatabase(DbManagerImpl.java:411)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at org.xutils.db.DbManagerImpl.<init>(DbManagerImpl.java:62)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at org.xutils.db.DbManagerImpl.getInstance(DbManagerImpl.java:77)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at org.xutils.x.getDb(x.java:76)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at com.jecansoft.tubaku2.app.MyApplication.onCreate(MyApplication.java:47)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4751)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.ActivityThread.-wrap1(ActivityThread.java)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.os.Handler.dispatchMessage(Handler.java:102)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.os.Looper.loop(Looper.java:148)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.ActivityThread.main(ActivityThread.java:5461)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at java.lang.reflect.Method.invoke(Native Method)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-07 10:29:20.870: E/AndroidRuntime(28430): FATAL EXCEPTION: main
05-07 10:29:20.870: E/AndroidRuntime(28430): Process: com.jecansoft.tubaku2, PID: 28430
05-07 10:29:20.870: E/AndroidRuntime(28430): Theme: themes:{default=overlay:system, fontPkg:system, com.android.systemui=overlay:system}
05-07 10:29:20.870: E/AndroidRuntime(28430): java.lang.RuntimeException: Unable to create application com.jecansoft.tubaku2.app.MyApplication: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4754)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread.-wrap1(ActivityThread.java)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.os.Handler.dispatchMessage(Handler.java:102)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.os.Looper.loop(Looper.java:148)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread.main(ActivityThread.java:5461)
05-07 10:29:20.870: E/AndroidRuntime(28430): at java.lang.reflect.Method.invoke(Native Method)
05-07 10:29:20.870: E/AndroidRuntime(28430): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-07 10:29:20.870: E/AndroidRuntime(28430): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-07 10:29:20.870: E/AndroidRuntime(28430): Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:207)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:191)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:709)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:702)
05-07 10:29:20.870: E/AndroidRuntime(28430): at org.xutils.db.DbManagerImpl.openOrCreateDatabase(DbManagerImpl.java:411)
05-07 10:29:20.870: E/AndroidRuntime(28430): at org.xutils.db.DbManagerImpl.<init>(DbManagerImpl.java:62)
05-07 10:29:20.870: E/AndroidRuntime(28430): at org.xutils.db.DbManagerImpl.getInstance(DbManagerImpl.java:77)
05-07 10:29:20.870: E/AndroidRuntime(28430): at org.xutils.x.getDb(x.java:76)
05-07 10:29:20.870: E/AndroidRuntime(28430): at com.jecansoft.tubaku2.app.MyApplication.onCreate(MyApplication.java:47)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4751)
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
x.Ext.setDebug(BuildConfig.DEBUG);
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
.setDbName("logininfo.db")
.setDbDir(new File("/sdcard"))
.setDbVersion(2)
.setDbOpenListener(new DbManager.DbOpenListener() {
@Override
public void onDbOpened(DbManager db) {
db.getDatabase().enableWriteAheadLogging();
}
})
.setDbUpgradeListener(new DbManager.DbUpgradeListener() {
@Override
public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
// TODO: ...
// db.addColumn(...);
// db.dropTable(...);
// ...
// or
// db.dropDb();
}
});
DbManager db = x.getDb(daoConfig);
Member member =new Member();
member.setUsername("名字");
member.setMobile("136");
member.setUserCategory("1");
db = x.getDb(daoConfig);
try {
db.saveBindingId(member);
} catch (DbException e) {
e.printStackTrace();
}
try {
member = db.findFirst(Member.class);
System.out.println("name:" + member.getMobile());
} catch (DbException e) {
e.printStackTrace();
}
}
}
放在Application中,项目中要存储用户登录信息,就用框架里的,没想到出问题了,两天了都没解决。请大神们帮帮忙。
05-07 10:29:20.865: E/SQLiteLog(28430): (14) cannot open file at line 31278 of [2ef4f3a5b1]
05-07 10:29:20.865: E/SQLiteLog(28430): (14) os_unix.c:31278: (2) open(/sdcard/logininfo.db) -
05-07 10:29:20.867: E/SQLiteDatabase(28430): Failed to open database '/sdcard/logininfo.db'.
05-07 10:29:20.867: E/SQLiteDatabase(28430): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:207)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:191)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:709)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:702)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at org.xutils.db.DbManagerImpl.openOrCreateDatabase(DbManagerImpl.java:411)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at org.xutils.db.DbManagerImpl.<init>(DbManagerImpl.java:62)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at org.xutils.db.DbManagerImpl.getInstance(DbManagerImpl.java:77)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at org.xutils.x.getDb(x.java:76)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at com.jecansoft.tubaku2.app.MyApplication.onCreate(MyApplication.java:47)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4751)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.ActivityThread.-wrap1(ActivityThread.java)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.os.Handler.dispatchMessage(Handler.java:102)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.os.Looper.loop(Looper.java:148)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at android.app.ActivityThread.main(ActivityThread.java:5461)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at java.lang.reflect.Method.invoke(Native Method)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-07 10:29:20.867: E/SQLiteDatabase(28430): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-07 10:29:20.870: E/AndroidRuntime(28430): FATAL EXCEPTION: main
05-07 10:29:20.870: E/AndroidRuntime(28430): Process: com.jecansoft.tubaku2, PID: 28430
05-07 10:29:20.870: E/AndroidRuntime(28430): Theme: themes:{default=overlay:system, fontPkg:system, com.android.systemui=overlay:system}
05-07 10:29:20.870: E/AndroidRuntime(28430): java.lang.RuntimeException: Unable to create application com.jecansoft.tubaku2.app.MyApplication: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4754)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread.-wrap1(ActivityThread.java)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.os.Handler.dispatchMessage(Handler.java:102)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.os.Looper.loop(Looper.java:148)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread.main(ActivityThread.java:5461)
05-07 10:29:20.870: E/AndroidRuntime(28430): at java.lang.reflect.Method.invoke(Native Method)
05-07 10:29:20.870: E/AndroidRuntime(28430): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-07 10:29:20.870: E/AndroidRuntime(28430): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-07 10:29:20.870: E/AndroidRuntime(28430): Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:207)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:191)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:709)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:702)
05-07 10:29:20.870: E/AndroidRuntime(28430): at org.xutils.db.DbManagerImpl.openOrCreateDatabase(DbManagerImpl.java:411)
05-07 10:29:20.870: E/AndroidRuntime(28430): at org.xutils.db.DbManagerImpl.<init>(DbManagerImpl.java:62)
05-07 10:29:20.870: E/AndroidRuntime(28430): at org.xutils.db.DbManagerImpl.getInstance(DbManagerImpl.java:77)
05-07 10:29:20.870: E/AndroidRuntime(28430): at org.xutils.x.getDb(x.java:76)
05-07 10:29:20.870: E/AndroidRuntime(28430): at com.jecansoft.tubaku2.app.MyApplication.onCreate(MyApplication.java:47)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014)
05-07 10:29:20.870: E/AndroidRuntime(28430): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4751)