所以我试图使用Android SQLite资产助手将数据库与我的应用程序预先打包,我遇到了一个问题。这里有一些开始的信息:
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
我的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文件(数据库)并且没有做任何事情。
答案 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'