跳转至

Android_SDK源码编译

SDK源码获取

Note

1.源码不可放在共享目录下编译
2.编译主机不可用ROOT账号登陆

1.SDK下载,拷贝源码压缩包到编译主机目录。

2.进入源码所在目录,输入命令解压。

tar -zxvf *.tar.gz

3.进入解压生成的a133-linux目录,输入命令恢复源码。

git reset --hard

首次编译配置

./build.sh lunch
======you are building a133 android======
1. BoardConfig-a133-kickpi-k5.mk
2. BoardConfig-a133-kickpi-k5c.mk
which board would you like (1-2):  //选择根据板型K5或者K5C

image-20251107092156026

编译完整镜像

Warning

如果编译Android失败,没有明显报错,可以修改build.sh中Android编译的进程数,将make -j32减小至你设备的实际情况。

./build.sh

Tip

生成的镜像位于a133-android10.0-v2.0/longan/out/。

image-20251107095352068

常见问题

  • 安卓编译失败

编译安卓时失败且没有明显报错,修改以下内容尝试重新编译。

image-20250814093933050

  • 编译 yylloc 报错问题?

由于编译环境 ld 不同,可能会导致 yylloc 报错,需要修改代码中的yylloc,实际路径根据报错提示修改。

--- a/longan/kernel/linux-4.9/scripts/dtc/dtc-lexer.lex.c
+++ b/longan/kernel/linux-4.9/scripts/dtc/dtc-lexer.lex.c
@@ -631,8 +631,8 @@ char *yytext;
 #include "srcpos.h"
 #include "dtc-parser.tab.h"

-//YYLTYPE yylloc;
-extern YYLTYPE yylloc;
+YYLTYPE yylloc;
+//extern YYLTYPE yylloc;
  • APP 、文件编译不生效问题?

android 为惰性编译,直接替换后编译,一些APP、文件不一定编译到镜像中,可以通过如下其中一种方式解决。

  1. make installclean

  2. rm out/target/product/apollo-p2/xxx/xxx

  3. 编译的条件发生变化(比如文件名、APK名)