小编lif*_*ees的帖子

Android SQLiteException:无法将db的语言环境更改为"en_US"

我最近更新了我的一个(开源)Android应用程序,我的用户正在获得一个我无法复制的例外.关键部分是:

android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5)

然后

Caused by: android.database.sqlite.SQLiteException: Failed to change locale for db '/data/data/com.airlocksoftware.hackernews/databases/hacker_news_cache.db' to 'en_US'.

这种情况发生在使用Android 2.3 - 4.2.1的设备上,并且在我尝试连接数据库的应用程序中的多个位置.我使用它后关闭数据库.

我找不到有关"未能更改db语言环境"异常的更多信息.当我查看SQLiteConnection源代码(第386行)时,它似乎是'android_metadata'表或'使用新的语言环境更新索引'的问题.

这是导致异常的代码(在Github上).

java.lang.RuntimeException: An error occured while executing doInBackground()
at android.support.v4.content.ModernAsyncTask$3.done(ModernAsyncTask.java:137)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856) Caused by: android.database.sqlite.SQLiteException: Failed to change locale for db '/data/data/com.airlocksoftware.hackernews/databases/hacker_news_cache.db' to 'en_US'.
at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:386)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
at …
Run Code Online (Sandbox Code Playgroud)

sqlite android sqliteopenhelper

16
推荐指数
1
解决办法
8419
查看次数

IntelliA中的AndroidAnnotations处理失败,因为未生成R.java

我认为IntelliJ在生成R.java文件时存在一些问题,导致AndroidAnnotations出现问题,因为它无法解析布局的资源ID.

这是我的活动:

package com.airlocksoftware.canvastest;

import android.app.Activity;
import android.os.Bundle;
import com.googlecode.androidannotations.annotations.EActivity;

@EActivity(R.layout.main)
public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,即使我注释掉注释,并且确实如此setContentView(R.layout.main),即使从未导入R.java,它也能正常工作.

顺便说一句,布局只是一个简单的"Hello World".没有什么奇怪的事情发生在那里.

无论我做什么,我都无法生成AndroidAnnotations CanvasActivity_.java.我的pom.xml看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.airlocksoftware.canvastest</groupId>
    <artifactId>CanvasTest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <android.version>4.2.2_r2</android.version>
        <android.platform>17</android.platform>
        <androidannotations.version>2.7.1</androidannotations.version>
        <java.version>1.6</java.version>
    </properties>

    <repositories>
        <repository>
            <id>local-repo</id>
            <url>file:///${env.HOME}/.m2/repository</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>android</groupId>
            <artifactId>android</artifactId>
            <version>${android.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.googlecode.androidannotations</groupId>
            <artifactId>androidannotations</artifactId>
            <version>${androidannotations.version}</version> …
Run Code Online (Sandbox Code Playgroud)

android intellij-idea maven android-annotations

5
推荐指数
1
解决办法
1931
查看次数