我想使用ant在libs中使用jar构建我的项目,build.xml
的生成是成功的,但是当我执行ant release
时,编译时会出错。
[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();
^
但在日食中,我可以成功编译。所以我需要手动在build.xml中添加jar,但我被告知android ant会照看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" /
那么我该如何解决这个问题。
编辑:我的应用程序是针对具有方法setOTAMode
的指定BSP开发的,但我使用标准SDK开发,因此为了成功编译,我添加了一个具有相同包名{{的jar 1}}在BSP中伪造java编译器。然后,当您在BSP中运行应用程序时,将调用BSP中的实际方法。
所以android.os.RecoverySystem
在jar中定义,android.os.RecoverySystem
被声明。
答案 0 :(得分:0)
该符号不是来自您的JAR,因为您的JAR中没有android.os
代码。 android.os.RecoverySystem
来自Android SDK。 Android SDK中没有此类的setOTAMode()
方法,因此这段代码永远不会构建。 Android源代码AFAICT中甚至没有setOTAMode()
方法。