Android 源码编译遇到的几个错误

来源:互联网 发布:淘宝买家信誉查询工具 编辑:程序博客网 时间:2024/04/30 12:58

      • Error Cant locate Switchpm in INC
      • Error javac target release 15 conflicts with default source release 17
      • Error binbashline 1VBoxManagecommand not found
      • 查看Android源码

前几天编译Android源码的时候遇到了几个错误,记录一下解决办法:

1.Error : Can’t locate Switch.pm in @INC

这个错误的解决方法是:

sudo apt-get install libswitch-perl 

2.Error : javac: target release 1.5 conflicts with default source release 1.7

关于这个错误,在官网的文档中有说道:
To develop older versions of Android, download and install the corresponding version of the Java JDK
对于在编译早期版本的Android源码时,就不要按照上边说的安装OpenJDK 7了,而是应该去Oracle下载JDK5或者JDK6.
我是从网上Down的别人共享的4.1.1版本的Android源码,所以我下载了 jdk-6u45-linux-x64.bin 这个JDK进行的配置修改:

chmod +x jdk-6u45-linux-x64.bin./jdk-6u45-linux-x64.binsudo mv jdk1.6.0_45 /usr/lib/jvm/sudo rm ./jdk-6u45-linux-x64.bin

然后配置一下环境变量:

sudo gedit /etc/environmentPATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/jdk1.6.0_45/bin"CLASSPATH="/usr/lib/jvm/jdk1.6.0_45/lib"JAVA_HOME="/usr/lib/jvm/jdk1.6.0_45"

修改默认配置:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 300sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 300sudo update-alternatives --config java

列出来的选项中发现星号(*)标注的选择项是我之前安装的openjdk7,新安装的这个jdk1.6.0_45对应的索引是2,所以直接输入2;
这时候如果直接查看javac -version会发现还是之前的openjdk7,所以需要把这个openjdk7删掉并重启一下!

sudo remove openjdk-7-jdksudo reboot

3.Error : /bin/bash:line 1:VBoxManage:command not found

出现这个错误是因为我在make 的时候选择生产vdi的格式(make -j4 android_disk_vdi);即在生产img系统文件之后进行一个转换,转换为vdi;但是因为新机器没有安装VBOX软件所以它找不到这个VBoxManage,解决方法自然就是安装一下:

sudo apt-get install virtualbox

除了编译时间有点长之外其他基本就没有遇到什么错误了,编译完成之后一般都会有类似的提示:

Done with VirtualBox bootable system-disk image -[ out/target/product/vbox86p/android_system_disk.vdi ]

编译成功之后的vdi文件也是在上边提到的目录下,拷贝出来使用VBOX加载运行就可以了!

4.查看Android源码

源码编译完成之后肯定是要研究源码的了,但是Ubuntu下怎么查看源码呢?之前做Android的APP开发最熟悉的就是Android Studio了,所以也是准备使用AS来查看:

sudo add-apt-repository ppa:paolorotolo/android-studiosudo apt-get updatesudo apt-get install android-studio

安装完 AS 之后,要想用 AS 打开Android的源码查看还需要一步:
在Android的源码根目录下打开终端:

. development/tools/idegen/idegen.sh

如果提示找不到idegen.jar的话就需要执行:

mmm development/tools/idegen/

如果这句还会报错那么就把上边source build/envsetup.sh 还有 lunch 之类的再执行一遍,然后在执行上边语句,正常的就能在out/host/linux-x86/framework/下找到idegen.jar了。

这时候在根目录下会生成几个文件,使用 AS 打开刚才生产的android.ipr来加载项目查看源码。

1.AS 打开android.ipr的时间回比较长,毕竟需要加载很多项目文件的索引,多注意一下右下角的加载进度条,加载完成之后Project窗口中选择Project查看,在Android下是看不到什么东西的!
2.或者按照development/tools/idegen/README 里说的,修改一下/opt/android-studio/bin/studio64.vmoptions 这个文件的 -Xms -Xmx 等参数。

0 0
原创粉丝点击