sudo apt-get install git-core gnupg gperf libsdl-dev libesd0-dev lib64z1-dev bison flex
sudo apt-get install libwxgtk2.6-dev zip curl minicom tftpd
sudo apt-get install uboot-mkimage libx11-dev libncurses-dev
sudo apt-get install expect bison build-essential flex zlib1g-dev
sudo apt-get install gperf
sudo apt-get install libgl1-mesa-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libncurses5-dev
sudo apt-get install libgl1-mesa-dev
sudo apt-get update
Android源码编译make的各类错误解决方案汇总
https://blog.youkuaiyun.com/u013541140/article/details/52027569
[ 2% 1505/69566] Docs droiddoc: out/target/common/docs/ahat
FAILED: out/target/common/docs/ahat-timestamp
/bin/bash -c "(rm -rf ) && (mkdir -p out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/ ) && (rm -f out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/droiddoc-src-list ) && (touch out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/droiddoc-src-list ) && (echo -n 'art/tools/ahat/src/main/com/android/ahat/AhatHandler.java art/tools/ahat/src/main/com/android/ahat/AhatHttpHandler.java art/tools/ahat/src/main/com/android/ahat/BitmapHandler.java art/tools/ahat/src/main/com/android/ahat/Column.java art/tools/ahat/src/main/com/android/ahat/Doc.java art/tools/ahat/src/main/com/android/ahat/DocString.java art/tools/ahat/src/main/com/android/ahat/DominatedList.java art/tools/ahat/src/main/com/android/ahat/HeapTable.java art/tools/ahat/src/main/com/android/ahat/HtmlDoc.java art/tools/ahat/src/main/com/android/ahat/HtmlEscaper.java art/tools/ahat/src/main/com/android/ahat/Main.java art/tools/ahat/src/main/com/android/ahat/Menu.java art/tools/ahat/src/main/com/android/ahat/ObjectHandler.java art/tools/ahat/src/main/com/android/ahat/ObjectsHandler.java art/tools/ahat/src/main/com/android/ahat/OverviewHandler.java art/tools/ahat/src/main/com/android/ahat/Query.java art/tools/ahat/src/main/com/android/ahat/RootedHandler.java art/tools/ahat/src/main/com/android/ahat/SiteHandler.java art/tools/ahat/src/main/com/android/ahat/SitePrinter.java art/tools/ahat/src/main/com/android/ahat/SizeTable.java art/tools/ahat/src/main/com/android/ahat/StaticHandler.java art/tools/ahat/src/main/com/android/ahat/SubsetSelector.java art/tools/ahat/src/main/com/android/ahat/Summarizer.java art/tools/ahat/src/main/com/android/ahat/dominators/DominatorsComputation.java art/tools/ahat/src/main/com/android/ahat/heapdump/AhatArrayInstance.java art/tools/ahat/src/main/com/android/ahat/heapdump/AhatClassInstance.java art/tools/ahat/src/main/com/android/ahat/heapdump/AhatClassObj.java art/tools/ahat/src/main/com/android/ahat/heapdump/AhatHeap.java art/tools/ahat/src/main/com/android/ahat/heapdump/AhatInstance.java art/tools/ahat/src/main/com/android/ahat/heapdump/AhatPlaceHolderClassObj.java art/tools/ahat/src/main/com/android/ahat/heapdump/AhatPlaceHolderInstance.java art/tools/ahat/src/main/com/android/ahat/heapdump/AhatSnapshot.java art/tools/ahat/src/main/com/android/ahat/heapdump/Diff.java art/tools/ahat/src/main/com/android/ahat/heapdump/DiffFields.java art/tools/ahat/src/main/com/android/ahat/heapdump/Diffable.java art/tools/ahat/src/main/com/android/ahat/heapdump/DiffedFieldValue.java art/tools/ahat/src/main/com/android/ahat/heapdump/DominatorReferenceIterator.java art/tools/ahat/src/main/com/android/ahat/heapdump/Field.java art/tools/ahat/src/main/com/android/ahat/heapdump/FieldValue.java art/tools/ahat/src/main/com/android/ahat/heapdump/HprofFormatException.java art/tools/ahat/src/main/com/android/ahat/heapdump/Instances.java art/tools/ahat/src/main/com/android/ahat/heapdump/Parser.java art/tools/ahat/src/main/com/android/ahat/heapdump/PathElement.java art/tools/ahat/src/main/com/android/ahat/heapdump/Reference.java art/tools/ahat/src/main/com/android/ahat/heapdump/RootType.java art/tools/ahat/src/main/com/android/ahat/heapdump/Site.java art/tools/ahat/src/main/com/android/ahat/heapdump/Size.java art/tools/ahat/src/main/com/android/ahat/heapdump/SkipNullsIterator.java art/tools/ahat/src/main/com/android/ahat/heapdump/Sort.java art/tools/ahat/src/main/com/android/ahat/heapdump/SuperRoot.java art/tools/ahat/src/main/com/android/ahat/heapdump/Type.java art/tools/ahat/src/main/com/android/ahat/heapdump/Value.java art/tools/ahat/src/main/com/android/ahat/proguard/ProguardMap.java ' >> out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/droiddoc-src-list ) && (for d in out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/src ; do find \$d -name '*.java' -and -not -name '.*' >> out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/droiddoc-src-list 2> /dev/null ; done ; true ) && (out/soong/host/linux-x86/bin/zipsync -d out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/srcjars -l out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/droiddoc-srcjar-list -f \"*.java\" ) && (( prebuilts/jdk/jdk9/linux-x86/bin/javadoc -encoding UTF-8 -source 1.8 \\@out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/droiddoc-src-list \\@out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/droiddoc-srcjar-list -J-Xmx1600m -J-XX:-OmitStackTraceInFastThrow -XDignore.symbol.file -quiet -doclet com.google.doclava.Doclava -docletpath out/host/linux-x86/framework/jsilver.jar:out/host/linux-x86/framework/doclava.jar -templatedir external/doclava/res/assets/templates-sdk -sourcepath art/tools/ahat -d out/target/common/docs/ahat -hdf page.build PQ1A.190105.004-\$(cat out/build_number.txt) -hdf page.now \"\$(date -d @\$(cat out/build_date.txt) \"+%d %b %Y %k:%M\")\" -stubpackages com.android.ahat:com.android.ahat.* -api out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/ahat_api.txt -removedApi out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/ahat_removed_api.txt && touch -f out/target/common/docs/ahat-timestamp ) || (rm -rf out/target/common/docs/ahat out/host/common/obj/JAVA_LIBRARIES/ahat_intermediates/droiddoc-src-list; exit 45) )"
javadoc: warning - The old Doclet and Taglet APIs in the packages
com.sun.javadoc, com.sun.tools.doclets and their implementations
are planned to be removed in a future JDK release. These
components have been superseded by the new APIs in jdk.javadoc.doclet.
Users are strongly recommended to migrate to the new APIs.
javadoc: error - In doclet class com.google.doclava.Doclava, method start has thrown an exception java.lang.reflect.InvocationTargetException
java.lang.IllegalStateException: Error loading jar file.
at com.google.doclava.JarUtils.jarForClass(JarUtils.java:47)
at com.google.doclava.Doclava.writeAssets(Doclava.java:1119)
at com.google.doclava.Doclava.start(Doclava.java:508)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at jdk.javadoc/com.sun.tools.javadoc.main.DocletInvoker.invoke(DocletInvoker.java:332)
at jdk.javadoc/com.sun.tools.javadoc.main.DocletInvoker.start(DocletInvoker.java:211)
at jdk.javadoc/com.sun.tools.javadoc.main.Start.parseAndExecute(Start.java:453)
at jdk.javadoc/com.sun.tools.javadoc.main.Start.begin(Start.java:238)
at jdk.javadoc/com.sun.tools.javadoc.main.Start.begin(Start.java:224)
at jdk.javadoc/com.sun.tools.javadoc.Main.execute(Main.java:173)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:411)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:340)
at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:63)
at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:52)
Caused by: java.nio.file.NoSuchFileException: /media/yuhang/%E6%9B%BE%E5%AE%87%E8%88%AA/%E6%BA%90%E4%BB%A3%E7%A0%81code/aosp/out/host/linux-x86/framework/doclava.jar
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:145)
at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
at java.base/java.nio.file.Files.readAttributes(Files.java:1755)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:951)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:216)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:148)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:324)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:295)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:234)
at com.google.doclava.JarUtils.jarForClass(JarUtils.java:45)
... 16 more
1 error
[ 2% 1512/69566] host C++: memory_rep...as/memory_replay/tests/ThreadsTest.cpp
ninja: build stopped: subcommand failed.
09:20:07 ninja failed with: exit status 1
build/make/core/main.mk:21: recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
AOSP代码编译hikey版本出错修改方法:
https://www.veryarm.com/88028.html
2、安装android.com中指定的安装包
Installing required packages (Ubuntu 14.04)
You will need a 64-bit version of Ubuntu. Ubuntu 14.04 is recommended.
$ sudo apt-get install git-core gnupg flex bison gperf build-essential
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache
libgl1-mesa-dev libxml2-utils xsltproc unzip
3、安装下面两个安装包:
sudo apt-get install aptitude
sudo aptitude install libcurl4-openssl-dev nss-updatedb
[quote] [Android] How to resolve make error out/target/common/docs/api-stubs-timestam
Solution:
URL
http://grokbase.com/t/gg/android-building/132pnmn6m5/droiddoc-error-when-building-sdk-addon
vi build/core/droiddoc.mk
comment the line "@mkdir -p $(dir $@)"
##
##
## standard doclet only
##
##
$(full_target): $(full_src_files) $(full_java_lib_deps)
@echo Docs javadoc: $(PRIVATE_OUT_DIR)
@#mkdir -p $(dir $@)
@mkdir -p $@
An error comes while trying to build android
Docs droiddoc: out/target/common/docs/api-stubs
/bin/bash: line 18: 30598 Killed javadoc \@out/target/common/obj/JAVA_LIBRARIES/api-stubs_intermediates/droiddoc-src-list -J-Xmx1280m -quiet -doclet com.google.doclava.Doclava -docletpath out/host/linux-x86/framework/jsilver.jar:out/host/linux-x86/framework/doclava.jar -templatedir build/tools/droiddoc/templates-sdk -htmldir frameworks/base/docs/html -bootclasspath /usr/lib/jvm/java-6-oracle/lib/../jre/lib/rt.jar -classpath out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/mms-common_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/voip-common_intermediates/classes.jar -sourcepath frameworks/base/core/java:frameworks/base/graphics/java:frameworks/base/location/java:frameworks/base/media/java:frameworks/base/media/mca/effect/java:frameworks/base/media/mca/filterfw/java:frameworks/base/media/mca/filterpacks/java:frameworks/base/drm/java:frameworks/base/opengl/java:frameworks/base/sax/java:frameworks/base/telephony/java:frameworks/base/wifi/java:frameworks/base/keystore/java:out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/mms-common_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/voip-common_intermediates/classes.jar -d out/target/common/docs/api-stubs -hdf page.build JWR66V-eng.root.20140402.230813 -hdf page.now "02 Apr 2014 23:13" -knowntags ./frameworks/base/docs/knowntags.txt -since prebuilts/sdk/api/1.xml 1 -since prebuilts/sdk/api/2.xml 2 -since prebuilts/sdk/api/3.xml 3 -since prebuilts/sdk/api/4.xml 4 -since prebuilts/sdk/api/5.xml 5 -since prebuilts/sdk/api/6.xml 6 -since prebuilts/sdk/api/7.xml 7 -since prebuilts/sdk/api/8.xml 8 -since prebuilts/sdk/api/9.xml 9 -since prebuilts/sdk/api/10.xml 10 -since prebuilts/sdk/api/11.xml 11 -since prebuilts/sdk/api/12.xml 12 -since prebuilts/sdk/api/13.xml 13 -since prebuilts/sdk/api/14.txt 14 -since prebuilts/sdk/api/15.txt 15 -since prebuilts/sdk/api/16.txt 16 -since prebuilts/sdk/api/17.txt 17 -since prebuilts/sdk/api/18.txt 18 -werror -hide 113 -overview frameworks/base/core/java/overview.html -hdf sdk.version 4.2 -hdf sdk.rel.id 1 -hdf sdk.preview 0 -stubs out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/src -api out/target/common/obj/PACKAGING/public_api.txt -nodocs
make: *** [out/target/common/docs/api-stubs-timestamp] Error 45
对于出现问题的,出现内存有问题的:
ninja fatal error: runtime: out of memory
需要修改swap空间:
通过free -m
看到问题swap空间为0,
需要设置swap空间
sudo dd if=/dev/zero of=/swap_file bs=1M count=4000
sudo mkswap /swap_file
sudo swapon /swap_file
sudo gedit /etc/fstab
/swap_file swap swap default 0 0
dd: failed to open '/swapfile': Text file busy
如下图:
这个时候你只需要运行 sudo swapoff -a
即可解决。然后继续创建交换分区即可。
android source code compile:
export LC_ALL=C
source build/envsetup.sh
lunch aosp_arm-eng
make -j8
$ make -j4
build/core/main.mk:45: ********************************************************************************
build/core/main.mk:46: * You are using version 4.1 of make.
build/core/main.mk:47: * Android can only be built by versions 3.81 and 3.82.
build/core/main.mk:48: * see https://source.android.com/source/download.html
build/core/main.mk:49: ********************************************************************************
build/core/main.mk:50: *** stopping. Stop.
gedit build/core/main.mk
ifeq (0,$(shell expr $$(echo $(MAKE_VERSION) | sed "s/[^0-9\.].*//") = 4.1))
endif
GitError: --force-sync not enabled; cannot overwrite a local work tree. If you're comfortable with the possibility of losing the work tree's git metadata, use `repo sync --force-sync art` to proceed.
Checking out project platform/abi/cpp
Syncing work tree: 0% (1/412)Checking out project platform/art
error: Cannot checkout platform/art: ManifestInvalidRevisionError: revision refs/tags/android-4.4.4_r1 in platform/art not found
repo sync --force-sync -j4
download part code:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4.4_r1
android-4.4.4_r1
repo sync platform/frameworks/base
repo sync platform/packages/apps/Bluetooth
repo sync platform/hardware/libhardware
repo sync platform/external/bluetooth/bluedroid
tar -czf andorid-4.4.4_r1.tar.gz packages/apps/Bluetooth external/bluetooth/bluedroid frameworks/base/core/java/android/bluetooth hardware/libhardware/include/hardware
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r3
android-9.0.0_r3
repo sync platform/frameworks/base
repo sync platform/packages/apps/Bluetooth
repo sync platform/system/bt
tar -czf andorid-9.0.0_r3.tar.gz packages/apps/Bluetooth frameworks/base/core/java/android/bluetooth system/bt
需要注意的.mk或makefile
build/core/main.mk
. build/envsetup.sh
git 设置和取消代理
|
|
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 参考这个链接,使用以下命令
wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd AOSP # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码
出现以下问题:
error: .repo/manifests/: contains uncommitted changes
解决方法:
1、rm -rf .repo/manifests
重新repo sync
linux中将一个文件夹的所以内容复制到另外一个文件夹,cp 源文件夹 -r 目标文件夹
edit ~/.bashrc
export PATH=$PATH:~/bin
export REPO_URL='https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${PATH}:${JAVA_HOME}/bin
编译android源码的方式:以Android 4.1版本为例:
build/envsetup.sh
mmm hardware/libhardware_legacy/power/
出现以下问题,需要修改版本
编译源码时,Android can only be built by versions 3.81 and 3.82解决方法:https://blog.youkuaiyun.com/iteye_19583/article/details/82571792
2.修改build/core/main.mk文件:vi build/core/main.mk
: 参考 https://blog.youkuaiyun.com/fightfightfight/article/details/79696460
出现安装jdk的问题
https://www.cnblogs.com/a2211009/p/4265225.html ubuntu下安装jdk,由于oracle的jdk需要注册账号安装,安装openjdk
Ubuntu安装openjdk8
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo apt-get install openjdk-8-jre
- 通过
which java
找到java安装路径 -
添加环境变量
sudo vim ~/.bashrc 在尾部加入 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${PATH}:${JAVA_HOME}/bin
-
重启