繁体   English   中英

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

[英]Can't compile unmodified Android from source

我正在尝试不做任何修改就从源代码编译Android。 我已经跟踪了所有Google演练以及我可以找到的有关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版本,并且我相信所有的update-alternatives设置都正确。 我已经清理并重新制作了具有相同结果的项目。 在不修改同步代码的情况下,这似乎不应该成为问题。

另一方面,我能够成功构建OS的Cyanogenmod版本,因此我知道我的步骤还没有结束,我仍然希望对原始源提出任何建议吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM