2012-07-14 62 views
0

我已經差不多完成了我的第一個真正的Android項目,出租車訂購應用程序,只留下了一些小的可用性問題。對於將來的版本,我們計劃實現程序代碼和資源的內置自動更新,就像一些優秀的程序一樣。我設法運行一個簡單的例子,基於http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.htmlHow to load a Java class dynamically on android/dalvik?Is it possible to dynamically load a library at runtime from an Android application?。我不會在這裏發佈完整的代碼,它看起來很像上面的鏈接。主apk用作啓動程序,它從SD卡加載一個jar文件,從那裏加載一個特殊的類,實例化一個obect並通過Java Reflect API調用它的方法,該方法只需調用AlertDialog即可。Android。動態類加載和Java接口

但我希望能夠在啓動器和加載庫中使用通用基本Java接口,充當API。所以我試圖在啓動器和庫中聲明一個叫做Problem的接口。該代碼是這樣的:

Class<?> problemClass = cl.loadClass("ru.homez.euler.Problem1"); 
Problem problem = (Problem)problemClass.newInstance(); 
problem.solve(this); 

Dalvik虛擬機不喜歡這樣,我得到

java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation

我覺得出現這種情況是由於這一問題的接口上都在發射器和庫定義,我所看到的像這樣的問題。如何處理這個?

回答