我想用螞蟻來建立我的項目與庫中的jar,build.xml
的生成是成功的,但是當我執行ant release
時,編譯時出現錯誤。如何使用ant(錯誤無法找到符號)與外部庫建立一個android應用程序?
[javac] E:\Project\Pascal\Source\workspace\xxx\src\com\xxx\xxx\uti
ls\CommonUtil.java:1267: cannot find symbol
[javac] symbol : method setOTAMode()
[javac] location: class android.os.RecoverySystem
[javac] RecoverySystem.setOTAMode();
^
但在eclipse中,我可以成功編譯。所以我應該需要添加手動build.xml中的jar,但我被告知,Android的螞蟻會看在libs目錄的jar後,我在base_rules.xml發現
<property name="jar.libs.dir" value="libs" />
<property name="jar.libs.absolute.dir" location="${jar.libs.dir}" />
<property name="native.libs.absolute.dir" location="libs"/
因此,如何能我解決這個問題。
編輯:我的應用程序中指定的BSP它具有方法setOTAMode
開發的,但我的標準SDK開發的,所以爲了成功編譯,我添加了具有相同的包名android.os.RecoverySystem
在BSP一個罐子假的Java編譯器。然後,當您在BSP中運行應用程序時,將調用BSP中的真實方法。
所以android.os.RecoverySystem
被定義在罐子裏並且setOTAMode
被聲明。
請參閱我的編輯。 – dreamtale 2012-08-04 04:29:56
@dreamtale:您不能簡單地將方法從第三方JAR添加到現有類中。你正在得到'RecoverySystem'的真正定義,它沒有'setOTAMode()'。 AOSP構建過程包括生成您自己的Android SDK版本的方法 - 您需要這樣做並使用這些結果。或者,在運行時使用反射來訪問此方法,而不是直接引用它。 – CommonsWare 2012-08-04 10:51:17
但是爲什麼它在日食建造時有效,有什麼區別? – dreamtale 2012-08-04 12:52:56