0

刚刚将我的 SDK 更新到 r20,并想在 Ice Cream Sandwich 4.1 模拟器上测试我的应用程序。当我试图创建一个新数据库时崩溃时,我的应用程序只有 6 行:

 gradeBookDbAdapter mDbHelper = new gradeBookDbAdapter(this);  <--- fails here

 private static class DatabaseHelper extends SQLiteOpenHelper {

    DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    public gradeBookDbAdapter(Context ctx) {                <-- but it never gets here
    this.mCtx = ctx;
    }
  <snip...</snip>

在“java.lang.VerifyError:”崩溃之前,我什至无法使用构造函数处理任何可执行代码

我正在使用外部库 Jexecelapi 来读取/写入 Excel 文件。自从我在 3 次主要修订前首次包含它以来,它一直在完美运行。但现在我的 LogCat 说:

07-08 18:21:38.185: I/dalvikvm(861): Could not find method jxl.Workbook.getWorkbook,     referenced from method com.ulsanonline.gradebook2.gradeBookDbAdapter.readExcel
07-08 18:21:38.185: W/dalvikvm(861): VFY: unable to resolve static method 1084: Ljxl/Workbook;.getWorkbook (Ljava/io/File;)Ljxl/Workbook;
07-08 18:21:38.185: D/dalvikvm(861): VFY: replacing opcode 0x71 at 0x001b
07-08 18:21:38.185: W/dalvikvm(861): VFY: unable to resolve exception class 290 (Ljxl/read/biff/BiffException;)
07-08 18:21:38.185: W/dalvikvm(861): VFY: unable to find exception handler at addr 0x5c
07-08 18:21:38.185: W/dalvikvm(861): VFY:  rejected Lcom/ulsanonline/gradebook2/gradeBookDbAdapter;.readExcel (Ljava/lang/String;)V
07-08 18:21:38.185: W/dalvikvm(861): VFY:  rejecting opcode 0x0d at 0x005c
07-08 18:21:38.185: W/dalvikvm(861): VFY:  rejected Lcom/ulsanonline/gradebook2/gradeBookDbAdapter;.readExcel (Ljava/lang/String;)V
07-08 18:21:38.185: W/dalvikvm(861): Verifier rejected class Lcom/ulsanonline/gradebook2/gradeBookDbAdapter;
07-08 18:21:38.195: D/AndroidRuntime(861): Shutting down VM
07-08 18:21:38.195: W/dalvikvm(861): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
07-08 18:21:38.205: E/AndroidRuntime(861): FATAL EXCEPTION: main
07-08 18:21:38.205: E/AndroidRuntime(861): java.lang.VerifyError: com/ulsanonline/gradebook2/gradeBookDbAdapter

所以我在第一篇文章中没有注意到崩溃上方的 logcat 文本,只是从主要错误向南走。我的图书馆现在失败的任何原因?

4

2 回答 2

1

事实证明,使用新的 SDK 我必须将我引用的库放在 /libs 文件夹中。这似乎已经解决了问题。——</p>

于 2012-07-08T11:23:51.713 回答
0

1.在您的项目目录中打开您的.classpath文件。

2.将exported="true"添加到classpathentry标签中。如 :

旧:classpathentry kind="lib" path="libs/httpmime-4.0.1.jar"

新:classpathentry导出="true" kind="lib" path="libs/httpmime-4.0.1.jar"

3.保存并重试。

于 2013-09-12T08:26:26.660 回答