恢复到以前的ADT插件

时间:2012-04-09 17:13:55

标签: android jar adt

现在我想知道是否有人能够完成恢复以前的ADT插件。

原因是因为我使用的是开源jar,我在LogCat上遇到以下错误:

  1. 无法解析虚拟方法
  2. 无法找到签名
  3. 中引用的类
  4. 无法解析新实例
  5. 这会导致在调试器上运行我的Android应用程序时出错。

    我之前使用的是Android ADT 15,现在我已更新为17。

    请帮助找到解决问题的解决方案。

    编辑*忘记添加错误“java.lang.NoClassDefFoundError”。简单来说,即使它允许,也无法找到附加jar的类或方法。

    编辑*添加了Logcat

    04-09 17:22:56.488: E/AndroidRuntime(4057): FATAL EXCEPTION: main
    04-09 17:22:56.488: E/AndroidRuntime(4057): java.lang.NoClassDefFoundError: nl.siegmann.epublib.epub.EpubReader
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at ebook.holder.ReadWholeBook.amBook(ReadWholeBook.java:796)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at ebook.holder.ReadWholeBook.firstPartBook(ReadWholeBook.java:720)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at ebook.holder.ReadWholeBook.initializeLoading(ReadWholeBook.java:159)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at ebook.holder.ReadWholeBook.onCreate(ReadWholeBook.java:109)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at android.os.Handler.dispatchMessage(Handler.java:99)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at android.os.Looper.loop(Looper.java:123)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at android.app.ActivityThread.main(ActivityThread.java:3683)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at java.lang.reflect.Method.invokeNative(Native Method)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at java.lang.reflect.Method.invoke(Method.java:507)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    04-09 17:22:56.488: E/AndroidRuntime(4057):     at dalvik.system.NativeStart.main(Native Method)
    

    这些是警告:

    04-09 17:22:56.158: W/dalvikvm(4057): VFY: unable to resolve new-instance 144 (Lnl/siegmann/epublib/epub/EpubReader;) in Lebook/holder/ReadWholeBook;
    04-09 17:22:56.177: W/dalvikvm(4057): VFY: unable to find class referenced in signature (Lnl/siegmann/epublib/domain/Book;)
    04-09 17:22:56.217: W/dalvikvm(4057): VFY: unable to find class referenced in signature (Lnl/siegmann/epublib/domain/Book;)
    04-09 17:22:56.233: W/dalvikvm(4057): VFY: unable to resolve virtual method 433: Lnl/siegmann/epublib/domain/Book;.getSpine ()Lnl/siegmann/epublib/domain/Spine;
    04-09 17:22:56.277: W/dalvikvm(4057): VFY: unable to find class referenced in signature (Lnl/siegmann/epublib/domain/Book;)
    04-09 17:22:56.277: W/dalvikvm(4057): VFY: unable to resolve virtual method 433: Lnl/siegmann/epublib/domain/Book;.getSpine ()Lnl/siegmann/epublib/domain/Spine;
    

5 个答案:

答案 0 :(得分:6)

您可以通过以下步骤恢复到以前版本的ADT插件:

  1. 下载以前版本的ADT(zip存档)。官方更改日志,其中包含来自Google的历史ADT版本号列表:http://developer.android.com/tools/sdk/eclipse-adt.html。下载旧版本时使用的确切文件名和格式: (http://dl.google.com/android/ADT-16.0.1.ziphttp://dl.google.com/android/ADT-21.0.0.zip等),有关此流程的详细信息,请参阅How install old ADT13 in Eclipse。选择要恢复的版本。

  2. 在Eclipse菜单中,转到Window - >偏好 - >安装/更新 - >可用的软件站点,并通过单击“存档”按钮将最近下载的存档添加到列表中。

  3. 在Eclipse菜单中,转到帮助 - >关于Eclipse - >安装细节 - >安装历史记录并在列表中选择适当的项然后单击“恢复”按钮。

  4. 成功恢复并重新启动Eclipse后,您将获得以前版本的ADT,但此旧版本的ADT可能与您计算机上安装的Android SDK不兼容。您可以使用"This verison of ADT requires Android SDK Tools in revision 17 or above." I can't get this error to go away.

  5. “黑客”检查Android SDK中的ADT版本
  6. 完成上述所有步骤后,您可以使用ADT的还原版本,但如果项目的某些部分始终依赖于较新版本的ADT或SDK,则必须手动解决此问题。

答案 1 :(得分:0)

我要做的第一件事就是删除所有输出(gen,target,out)并完全重建项目。

答案 2 :(得分:0)

回答你的问题:不,不可能恢复到之前版本的ADT插件。即使认为Eclipse可以恢复配置,插件所需的旧版本也无法在Google Repos上使用。

很遗憾没有关于你的问题的提示。

答案 3 :(得分:0)

没有选择没有办法让一切恢复原状。唯一的解决方案是系统还原。

答案 4 :(得分:0)

我遇到了问题并在一周前解决了。

你必须使用adt22,对吧?

当您使用adt22时,如果您有一个名为libs的文件夹(其中包含一些第三方jar),则会显示名为Android Private Libraries的库。不幸的是,在编译项目时,带有jar的lib是没有导出到apk,早期的插件可以做得很好。

所以你需要手动导出罐子。

项目 - >构建路径 - >找到订单和导出选项卡,选择Android私有库。然后删除bin文件夹(使项目干净地编译),你会得到一个更大的apk 其中的罐子。