作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
编辑:
错误发生在 ORMLite
版本 4.48
中。我回滚到 4.45
,错误不再发生。
我已经按照网站上的说明使用适用于 Android 的 ORMLite
实现了一个数据库。但是,每当我尝试写入数据库时,都会出现异常:
10-24 15:15:04.600: E/AndroidRuntime(12057): FATAL EXCEPTION: IntentService[com.mypackage.instagram.UpdateInstagramPhotosService]
10-24 15:15:04.600: E/AndroidRuntime(12057): java.lang.ExceptionInInitializerError
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.android.AndroidDatabaseConnection.compileStatement(AndroidDatabaseConnection.java:146)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.table.TableUtils.doStatements(TableUtils.java:460)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.table.TableUtils.doCreateTable(TableUtils.java:443)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.table.TableUtils.createTable(TableUtils.java:220)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.table.TableUtils.createTable(TableUtils.java:53)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.mypackage.database.DatabaseHelper.onCreate(DatabaseHelper.java:33)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper.onCreate(OrmLiteSqliteOpenHelper.java:209)
10-24 15:15:04.600: E/AndroidRuntime(12057): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
10-24 15:15:04.600: E/AndroidRuntime(12057): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.android.AndroidConnectionSource.getReadWriteConnection(AndroidConnectionSource.java:66)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.dao.BaseDaoImpl.create(BaseDaoImpl.java:306)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.mypackage.instagram.UpdateInstagramPhotosService.performUpdate(UpdateInstagramPhotosService.java:85)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.mypackage.PhotoUpdateService.onHandleIntent(PhotoUpdateService.java:27)
10-24 15:15:04.600: E/AndroidRuntime(12057): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
10-24 15:15:04.600: E/AndroidRuntime(12057): at android.os.Handler.dispatchMessage(Handler.java:99)
10-24 15:15:04.600: E/AndroidRuntime(12057): at android.os.Looper.loop(Looper.java:137)
10-24 15:15:04.600: E/AndroidRuntime(12057): at android.os.HandlerThread.run(HandlerThread.java:60)
10-24 15:15:04.600: E/AndroidRuntime(12057): Caused by: java.lang.ExceptionInInitializerError
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.android.AndroidCompiledStatement.<clinit>(AndroidCompiledStatement.java:33)
10-24 15:15:04.600: E/AndroidRuntime(12057): ... 17 more
10-24 15:15:04.600: E/AndroidRuntime(12057): Caused by: java.lang.Error: Unresolved compilation problems:
10-24 15:15:04.600: E/AndroidRuntime(12057): The import android.os.CancellationSignal cannot be resolved
10-24 15:15:04.600: E/AndroidRuntime(12057): CancellationSignal cannot be resolved to a type
10-24 15:15:04.600: E/AndroidRuntime(12057): CancellationSignal cannot be resolved to a type
10-24 15:15:04.600: E/AndroidRuntime(12057): CancellationSignal cannot be resolved to a type
10-24 15:15:04.600: E/AndroidRuntime(12057): CancellationSignal cannot be resolved to a type
10-24 15:15:04.600: E/AndroidRuntime(12057): CancellationSignal cannot be resolved to a type
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.android.compat.JellyBeanApiCompatibility.<init>(JellyBeanApiCompatibility.java:5)
10-24 15:15:04.600: E/AndroidRuntime(12057): at com.j256.ormlite.android.compat.ApiCompatibilityUtils.<clinit>(ApiCompatibilityUtils.java:40)
10-24 15:15:04.600: E/AndroidRuntime(12057): ... 18 more
这发生在 IntentService
子类中。这是该类的一些相关代码:
private DatabaseHelper databaseHelper;
static {
OpenHelperManager.setOpenHelperClass(DatabaseHelper.class);
}
public DatabaseHelper getHelper() {
if (databaseHelper == null) {
databaseHelper = OpenHelperManager.getHelper(this, DatabaseHelper.class);
}
return databaseHelper;
}
@Override
public void onDestroy() {
super.onDestroy();
if (databaseHelper != null) {
OpenHelperManager.releaseHelper();
databaseHelper = null;
}
}
我可以在我的代码中导入 android.os.CancellationSignal
就好了。
最佳答案
我也是这样,感谢帮助...回滚到 4.45 后,问题解决了。
关于android - 导入android.os.CancellationSignal无法在Android上解析ORMLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19577873/
我是一名优秀的程序员,十分优秀!