1

我想用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();
                     ^

但是在eclipse中,我可以编译成功。所以我是否需要手动在 build.xml 中添加 jar,但是我被告知 android ant 会照看我在 base_rules.xml 中找到的 libs 目录中的 jar

<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 中添加了一个具有相同包名的 jar 来伪造 java 编译器。然后当你在 BSP 中运行应用程序时,会调用 BSP 中的真实方法。

所以android.os.RecoverySystem在 jar 中定义并setOTAMode声明。

4

1 回答 1

0

该符号不是来自您的 JAR,因为您的 JAR 中没有android.os代码。android.os.RecoverySystem来自Android SDK。Android SDK 中没有setOTAMode()此类的方法,因此此代码永远不会构建。Android源代码中甚至没有setOTAMode()方法AFAICT。

于 2012-08-03T10:56:52.197 回答