2012-04-09 74 views
0

現在我想知道是否有人能夠完成恢復到以前的ADT插件。恢復到之前的ADT插件

這樣做的原因是因爲我使用的是開放源代碼的jar,我讓我的logcat的下列錯誤,如:

  1. 無法解決虛擬方法
  2. 找不到類中引用簽名
  3. 無法解決的新實例

這樣做的結果會導致對調試器中運行我的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; 
+0

如果你正在使用放在你的''lib'目錄下的任何庫,你現在必須命名它''libs'。 – 2012-04-10 13:51:46

+0

哦,我不知道。我不知道這是否會有所作爲,因爲我找不到那條信息 – sdfwer 2012-04-10 14:18:08

+0

只是嘗試它,因爲我有同樣的問題,並改變了它爲我工作的名稱。 – 2012-04-10 14:31:05

回答

0

沒有選擇沒有辦法讓一切恢復原樣。唯一的解決辦法是系統恢復

0

我做的第一件事是刪除所有輸出(根,目標出),並​​做了項目全面重建。

+0

剛剛嘗試過它不好D:我也試過用這個ADT打開一個新項目這個jar並嘗試簡單的解決方案,然後它仍然給我它找不到它 – sdfwer 2012-04-09 17:27:14

+0

聽起來好像這個庫有問題 – 2012-04-09 17:31:39

+0

我一直在使用它2個月現在開發從未有過錯誤,直到我更新了ADT 。 – sdfwer 2012-04-09 17:33:15

0

要回答你的問題:不,這是不可能恢復到以前版本的ADT插件。即使Eclipse認爲可以恢復配置,但所需的較舊版本的插件根本不可用於Google回購站。

不幸的是沒有關於你的問題的提示。

+0

我係統恢復並備份保存文件。 – sdfwer 2012-04-10 13:45:54

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.zip,http://dl.google.com/android/ADT-21.0.0.zip等),有關該過程的更多詳細信息,請參閱How install old ADT13 in Eclipse。選擇你想要恢復的版本。

  2. 在Eclipse菜單去窗口 - >首選項 - >安裝/更新 - >可用軟件的網站,並添加最近下載的存檔點擊「存檔」按鈕列出。

  3. 在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. 畢竟你可以用ADT的恢復版本中運行上述步驟的ADT版本的Android SDK檢查,但如果你的項目的某些部分總是依賴於ADT的新版本或SDK,您必須手動解決這個問題。

+0

只是使用這些指令從ADT v21恢復到ADT v20.0.3以避免此java.lang.NoSuchFieldError錯誤:https://groups.google.com/forum/?fromgroups=#!topic/adt-dev/Lfa9AgAXURQ。謝謝Andrey! – Theo 2012-12-17 23:19:16

0

我得到了問題,並在一週前解決它。

您必須使用adt22,對不對?

當您使用adt22時,如果您有一個名爲libs的文件夾(其中包含一些第三方jar),將會顯示一個名爲Android Private Libraries的庫。遺憾的是,當項目編譯時,不會導出到apk,這是早期插件可以很好地完成的。

所以你需要手動導出罐子。

項目 - >構建路徑 - >找到訂單和導出選項卡,選擇Android專用庫。然後刪除bin文件夾(使項目被編譯乾淨),你會得到一個更大的apk與
罐子它。