我有ubuntu 14.04,我正在尝试为BBB构建android。我得到了BBB android并访问了这个网站以获得正确的java。
我从这个网站上获取了android源代码
http://bbbandroid.sourceforge.net/build.html
然后按照此站点的步骤进行java,
https://source.android.com/source/initializing#for-ubuntu-14-04
我按照网站的说法做了。
然后 make -j4 给出了这个构建错误,
============================================
Checking build tools versions...
************************************************************
You are attempting to build with an unsupported JDK.
You use OpenJDK but only Sun/Oracle JDK is supported.
Please follow the machine setup instructions at
https://source.android.com/source/download.html
************************************************************
build/core/main.mk:152: *** stop. Stop.
然后我做了这个
**java -version**
openjdk version "1.8.0_45-internal"
OpenJDK Runtime Environment (build 1.8.0_45-internal-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)
**sudo update-alternatives --config java**
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
* 3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
Press enter to keep the current choice[*], or type selection number: 3
**sudo update-alternatives --config javac**
There are 2 choices for the alternative javac (providing /usr/bin/javac).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1081 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/bin/javac 1061 manual mode
* 2 /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1081 manual mode
Press enter to keep the current choice[*], or type selection number: 2
我再次检查了 java -version
openjdk version "1.8.0_45-internal"
OpenJDK Runtime Environment (build 1.8.0_45-internal-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)
它和以前一样。
答案 0 :(得分:1)
您需要获取Sun / Oracle JDK,并且您当前正在使用OpenJDK。
Sun / Oracle JDK是受JDK支持的。 (Sun归Oracle所有)
makefile输出回答了你的问题。它必须检查并强制使用Sun / Oracle JDK。
您使用OpenJDK但仅支持Sun / Oracle JDK。
请按照机器设置说明进行操作 https://source.android.com/source/download.html
您需要安装Sun / Oracle JDK然后运行
sudo update-alternatives --config java
选择新安装的版本。
答案 1 :(得分:0)
我认为我可以通过重新启动计算机make
来解决此错误,并且该错误由于未知原因而消失了。但是现在当我尝试启动模拟器时,我发现自己非常荒谬。
需要重新配置资源以使仿真器在正确的环境see here
下运行xb@dnxb:~/Downloads/android_src/hole$ . build/envsetup.sh
xb@dnxb:~/Downloads/android_src/hole$ lunch aosp_bullhead-userdebug
现在运行模拟器:
xb@dnxb:~/Downloads/android_src/hole$ emulator -sysdir out/target/product/generic/ -system out/target/product/generic/system.img -ramdisk out/target/product/generic/ramdisk.img -data out/target/product/generic/userdata.img -kernel prebuilts/qemu-kernel/arm/kernel-qemu-armv7 -memory 2048
emulator: ERROR: Can't access ANDROID_PRODUCT_OUT as '/home/xiaobai/Downloads/android_src/hole/out/target/product/bullhead'
You need to build the Android system before launching the emulator
xb@dnxb:~/Downloads/android_src/hole$
我刚刚意识到我只有/home/xiaobai/Downloads/android_src/hole/out/target/product/generic/
,没有bullhead
(Nexus 5X)。
现在,我知道重启后上一次成功的原因,这是因为它使用默认的通用午餐菜单aosp_arm-eng
构建,因为我没有重做步骤. build/envsetup.sh
和{{1 }},然后重新运行lunch aosp_bullhead-userdebug
。
我可以看到我的make
设置了此/etc/environment
,所以JAVA_HOME
永远无法工作,因为sudo update-alternatives --config java
是Oracle / Sun,而不是Open JDK(我的情况与OP,是否需要Oracle / Sun或OpenJDK之一取决于午餐菜单):
/usr/lib/jvm/jdk1.8.0_131/
修改$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$PATH"
JAVA_HOME="/usr/lib/jvm/jdk1.8.0_131/"
到openjdk路径(在Ubuntu中,可以使用/etc/environment
下载,然后使用sudo apt-get install openjdk-8-jdk
找到路径),打开一个新的Tab Shell会话,重做dpkg -L openjdk-8-jdk
,. build/envsetup.sh
和lunch aosp_bullhead-userdebug
,现在可以正常使用了,而且没有jdk错误。