尝试在Ubuntu 10.04(在VMware Player上)构建Android开源项目。
我按照this link的说明进行操作(它说使用了sun-java5 JDK 1.5,需要钓鱼才能找到Ubuntu) -
有299个编译错误。想知道使用JDK 1.5的方向是否过时了?一些错误如下(和许多类似的) -
external/jsilver/src/com/google/clearsilver/jsilver/data/HDFDataFactory.java:77: method does not override a method from its superclass
@Override
external/jsilver/src/com/google/clearsilver/jsilver/data/UniqueStack.java:106: cannot find symbol
symbol : method offerLast(T)
location: class java.util.LinkedList<T>
objectStack.offerLast(object);
external/jsilver/src/com/google/streamhtmlparser/impl/HtmlParserImpl.java:507: cannot find symbol
symbol : method isEmpty()
location: class java.lang.String
if (!tagString.isEmpty() && tagString.charAt(0) == '/') {
external/jsilver/src/com/google/streamhtmlparser/util/JavascriptTokenBuffer.java:80: cannot find symbol
symbol : method copyOf(char[],int)
location: class java.util.Arrays
buffer = Arrays.copyOf(aJavascriptTokenBuffer.buffer,
答案 0 :(得分:0)
对我自己的问题的部分回答 - 切换到java6并在构建过程中得到进一步的帮助。 Android下载页面上的说明似乎已过期。
现在遇到没有在ubuntu上安装正确的C ++库的问题......所以构建还没有成功
答案 1 :(得分:0)
我在另一篇博客中读到有必要使用64位和java 6进行编译,但我很确定,我试图找到另一种解决方案
答案 2 :(得分:0)
感谢您的意见和建议。
结论 - 我确实使用Sun JDK 1.6成功构建。经过7到8次尝试,每次做“干净”很重要。
请注意上面问题中显示的错误是针对Java 1.6中添加的java方法 - 因此Android源代码现在需要Java 1.6在主源分支上(请参阅此线程中的德语链接),即使路线指示使用Java 1.5。由于C库依赖性,它尝试进行64位构建失败。我在以下链接中使用了建议的解决方案,该链接需要对4个make文件进行小的更改,以便它可以进行32位构建(如果由于某种原因使用Java 1.6,则makefile被设置为执行64位构建)。
请参阅this link的用户amberved的“sol 2” - 这对我有用。
在回答上述评论问题时 - 嗯,我认为我有32位Ubuntu(我怎么说?)。系统是在32位Vista系统上运行的VMware上运行的Ubuntu。关于“必须使用java6在64位编译”,我对引用的makefile的编辑是32位构建的解决方法。
如果Linux是64位操作系统,我认为uname会报告类似i686_64的内容吗?
uname -a Linux jotobjects-ubuntu 2.6.32-21-generic#32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU / Linux