2014-04-29 22 views
0

因此,我试图使用Android SQLite资产助手与我的应用程序预先打包数据库,并且遇到了问题。这里有一点点信息上手:Android SQLite资产助手错误

  • 使用过Android Studio(gradle这个)
  • 我已经修改build.grade包括 compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
  • 我有我的数据库压缩(workoutsDatabase.sqlite.zip)在我的src/main /资产/数据库文件夹
  • 我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文件是一个zip?还有,还有什么我错过,让这个工作正常?

以下是错误:

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文件(数据库),并没有做任何事情。

+0

我猜你的压缩文件的名称应该是workoutsDatabase.zip而不是workoutsDatabase.sqlite.zip –

回答

0

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

0

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

方法1:尝试清除在“建设”选项您的项目。方法2:在“运行”选项中清理并重新运行您的项目。方法3:如果上面的方法没有帮助你,然后重新启动你的android Studio。

方法4:重新启动您的电脑,这肯定会消除错误。

+0

只有在ADB工作不正常时才需要重新启动PC。有时可以手动删除'build'目录(使用Explorer/Finder)。 –

+0

马丁..我做了重启我的电脑。 Dats为什么我建议。 –