2012-03-22 31 views
7

我有一個引用兩個庫項目的項目。將ADT和SDK工具升級到version 17後,應用程序一旦遇到對其中一個庫項目中定義的類的引用,就會崩潰。錯誤如:更新的SDK工具和ADT到17,現在得到VerifyErrors

Unable to resolve superclass of Lcom/my/package/name/MyActivity; (118) 
Link of class 'Lcom/my/package/name/MyActivity;' failed 
VFY: unable to find class referenced in signature (Lcom/my/package/name/MyActivity;) 

和:

FATAL EXCEPTION: main 
    java.lang.VerifyError: my/package/name/util/SomeClass 
    at my.package.name.App.onCreate(App.java:120) 
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3925) 
    at android.app.ActivityThread.access$1300(ActivityThread.java:122) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1184) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4340) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
    at dalvik.system.NativeStart.main(Native Method) 

(我的包和類的名稱不是這樣,只是修改他們在這裏發帖)

任何關於正在發生的事情的想法這裏?據我所知,沒有構建錯誤,我的項目看起來像是正確引用庫項目。

+0

您是否嘗試清潔和重建項目? – 2012-03-22 06:22:44

+0

我刷新,我清理,重建,關閉,打開,哭泣和其他一些事情。 ;)清潔似乎沒有改變任何東西,但我發現了一些東西(見下文)。雖然謝謝! – cottonBallPaws 2012-03-22 06:47:39

回答

12

我有完全相同的問題。尋找這個職位:救我一些沮喪。

+0

非常感謝那個鏈接!血腥地獄我所要做的就是將「lib」文件夾重命名爲「libs」 – twig 2012-05-01 11:19:21

+0

您也可以使用eclipse的Order and Export功能 – Bendlas 2012-05-31 17:38:36

4

哎,這很嚇人,但我只是嘗試了很多不同的東西,直到它工作。在所有這一切的某處,它解決了它。 我的圖書館項目有一些jar添加到「lib」文件夾並附加到構建路徑。

我看了這個更改日誌備註:http://tools.android.com/recent/dealingwithdependenciesinandroidprojects關於對庫和依賴關係的更改。我注意到這一點:

項目有源文件夾,以及庫項目和jar文件依賴項。隨着需要的不是增加庫項目中project.properties依賴沒有其他的設置,項目的類路徑自動填充:

The content of the project’s libs/*.jar 
The output of the Library Projects. 
The Library Projects’ libs/*.jar 

出於某種原因,我的圖書館項目的文件夾命名爲「LIB」而不是「庫」。我一直以這種方式使用它近兩年沒有任何問題,但我繼續前進並將其更改爲「libs」。然後我刷新了這個項目,並將「is Library」標誌關閉,然後再次確認它看到了這個變化。

另外,使用新工具,他們提到它在引用庫的項目中處理包括庫項目的罐子。到目前爲止,我已經手動將庫項目的jar添加到了引用項目中。所以我進入了參考項目,並從構建路徑中移除了罐子。然後我進入項目屬性並刪除了庫項目並重新添加它。

最後,我注意到一個jar文件在庫項目的文件夾中,但沒有被使用。它只是在文件夾中。我刪除了該文件。

所以在那裏的某個地方它又開始工作了。我認爲真正的解決方案是將「lib」改爲「libs」,但我想確保我提到這一切,以防其他開發人員在他們心中感受到恐懼和恐慌。祝你好運!

1

@kargi

作爲一個規則,我認爲解決的辦法herehere是一個非常不好的做法。 Maven很久以前就解決了這個荒謬的lib文件夾業務,但是Maven並沒有很高效地構建Android,所以我會推薦使用Eclipse導出功能,因爲我描述了here

相關問題