无法从源代码编译未修改的Android

时间:2014-10-30 04:30:34

标签: java android build android-source

我正在尝试从源代码编译Android而不做任何修改。我已经跟踪了所有谷歌浏览和我可以找到的关于Java版本的所有帖子,但仍然得到似乎相同的错误。我已经多次尝试构建它,三重检查设置和java版本,但我不知所措。任何帮助将不胜感激。

我正在运行16Gb RAM并尝试了不同的-jX命令,包括完全省略它。这是我构建的顶部,也是日志的最后一部分。

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.2
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.13.0-39-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_BUILD_TYPE=release
BUILD_ID=KOT49H
OUT_DIR=/ssd/android/build/android
============================================

和输出的后半部分

Processing target/product/generic/obj/APPS/DeskClock_intermediates/package.apk
Done!
Install: /ssd/android/build/android/target/product/generic/system/app/DeskClock.odex
Install: /ssd/android/build/android/target/product/generic/system/app/DeskClock.apk
target Java: junit-runner (/ssd/android/build/android/target/common/obj/JAVA_LIBRARIES/junit-runner_intermediates/classes)
Copying: /ssd/android/build/android/target/common/obj/JAVA_LIBRARIES/junit-runner_intermediates/classes-jarjar.jar
Copying: /ssd/android/build/android/target/common/obj/JAVA_LIBRARIES/junit-runner_intermediates/emma_out/lib/classes-jarjar.jar
Copying: /ssd/android/build/android/target/common/obj/JAVA_LIBRARIES/junit-runner_intermediates/classes.jar
target Static Jar: junit-runner (/ssd/android/build/android/target/common/obj/JAVA_LIBRARIES/junit-runner_intermediates/javalib.jar)
target Java: android.test.runner (/ssd/android/build/android/target/common/obj/JAVA_LIBRARIES/android.test.runner_intermediates/classes)
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Copying: /ssd/android/build/android/target/common/obj/JAVA_LIBRARIES/android.test.runner_intermediates/classes-jarjar.jar
Copying: /ssd/android/build/android/target/common/obj/JAVA_LIBRARIES/android.test.runner_intermediates/emma_out/lib/classes-jarjar.jar
Copying: /ssd/android/build/android/target/common/obj/JAVA_LIBRARIES/android.test.runner_intermediates/classes.jar
target Java: Development (/ssd/android/build/android/target/common/obj/APPS/Development_intermediates/classes)
/ssd/android/build/android/target/common/obj/APPS/Development_intermediates/src/src/com/android/development/IRemoteService.java:6: duplicate class: com.android.development.IRemoteService
public interface IRemoteService extends android.os.IInterface
       ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
make: *** [/ssd/android/build/android/target/common/obj/APPS/Development_intermediates/classes-full-debug.jar] Error 41

我正在运行oracles java6版本,并且我相信所有更新替代品都已正确设置。我已经清理并重新制作了具有相同结果的项目。看来这不应该是一个问题,不需要修改同步代码。

另一方面,我能够成功构建操作系统的Cyanogenmod版本,所以我知道我的步骤没有关闭,我还是对原始来源的任何建议表示赞赏吗?

1 个答案:

答案 0 :(得分:0)

好的,所以我终于搞定了。事实证明,最好的解决方案是忽略大多数关于使用Java 6和Sun版本的建议,只需完全擦除java,重新安装OpenJDK-7。验证我的JAVA_HOME目录,验证我的PATH目录是否为Java,重新运行repo sync到master分支,重置所有更新替代品以验证它们是Java OpenJDK-7并重新发出命令(源,午餐)然后制作(我只使用-j4选项)让它一夜之间运行(我不知道它花了多长时间)它最终构建。希望这在某些方面对某人有所帮助,对于没有更改的基本下载和构建来说,这是一个相当大的挑战。