Android SQLite资产助手错误

时间:2014-04-29 12:24:02

标签: java android android-sqlite

所以我试图使用Android SQLite资产助手将数据库与我的应用程序预先打包,我遇到了一个问题。这里有一些开始的信息:

  • 使用Android Studio(gradle)
  • 我修改了build.grade以包含 compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
  • 我的数据库压缩了(workoutsDatabase.sqlite.zip)在我的src / main / assets / databases文件夹中
  • 我的WorkoutsDatabaseHelper.java看起来如下(抱歉格式错误,格式化程序今天早上很蠢!)

    import android.content.Context;
    
    import android.database.Cursor;
    
    import android.database.sqlite.SQLiteDatabase;
    
    import android.database.sqlite.SQLiteQueryBuilder;
    
    
    import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
    
    public class WorkoutsDatabaseHelper extends SQLiteAssetHelper {
    

    //所有静态变量     //数据库版本     private static final int DATABASE_VERSION = 1;

    // Database Name
    private static final String DATABASE_NAME = "workoutsDatabase.sqlite";
    
    
    
    public WorkoutsDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    

任何人都可以看到为什么这可能会认为.jar文件是拉链?而且,还有什么我不想让它正常工作吗?

这是错误:

Error:: error reading /Users/rdeckert/AndroidStudioProjects/MyPR/app/libs/android-sqlite-asset-helper.jar; cannot read zip file
Error:Execution failed for task ':app:preDexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Applications/Android Studio.app/sdk/build-tools/19.0.3/dx --dex --output /Users/rdeckert/AndroidStudioProjects/MyPR/app/build/pre-dexed/debug/android-sqlite-asset-helper-295afb1e2c04cd27e606e7f0ffde55bd32716c79.jar /Users/rdeckert/AndroidStudioProjects/MyPR/app/libs/android-sqlite-asset-helper.jar
  Error Code:
    1
  Output:
    UNEXPECTED TOP-LEVEL EXCEPTION:
    java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:128)
        at java.util.zip.ZipFile.<init>(ZipFile.java:145)
        at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
        at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
        at com.android.dx.command.dexer.Main.processOne(Main.java:596)
        at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
        at com.android.dx.command.dexer.Main.run(Main.java:230)
        at com.android.dx.command.dexer.Main.main(Main.java:199)
        at com.android.dx.command.Main.main(Main.java:103)
    1 error; aborting

我尝试更新Zip文件(数据库)并且没有做任何事情。

3 个答案:

答案 0 :(得分:0)

一旦我从build.gradle中删除了编译'com.readystatesoftware.sqliteasset:sqliteassethelper:+',它就会编译并正常工作。

答案 1 :(得分:0)

我知道我迟到但是一旦我也删除了这一行,但这对我没有帮助,所以你需要做的是:

方法1:尝试在“构建”选项中清理项目。

方法2:在“运行”选项中清理并重新运行项目。

方法3:如果上面的方法没有帮助你,那么重新启动android Studio。

方法4:重启你的电脑,这肯定会删除错误。

答案 2 :(得分:0)

您可以使用

    implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'