拉了网上最新的AOSP 代码,编译结果报错:如下图

LLFAILED: /media/caoxinyu/TomasYu/out-x86/Out_Q/soong/build.ninja/media/caoxinyu/TomasYu/out-x86/Out_Q/soong/.bootstrap/bin/soong_build -t -l /media/caoxinyu/TomasYu/out-x86/Out_Q/.module_paths/Android.bp.list -b /media/caoxinyu/TomasYu/out-x86/Out_Q/soong -n /media/caoxinyu/TomasYu/out-x86/Out_Q -d /media/caoxinyu/TomasYu/out-x86/Out_Q/soong/build.ninja.d -globFile /media/caoxinyu/TomasYu/out-x86/Out_Q/soong/.bootstrap/build-globs.ninja -o /media/caoxinyu/TomasYu/out-x86/Out_Q/soong/build.ninja Android.bperror: frameworks/native/libs/gui/Android.bp:20:1: module "libgui" variant "android_x86_x86_64_core_shared_asan": links a library "libselinux" which is not LL-NDK, VNDK-SP, or explicitly marked as 'double_loadable:true'. (dependency: libgui -> libbufferhubqueue -> libpdx_default_transport -> libselinux)09:26:01 soong bootstrap failed with: exit status 1

难道是我的本地代码有问题?然后我执行:

python repo forall -c git reset --hardpython repo sync

结果之后编译还是报错。

然后百度了一下,发现,好吧,不行。

还是google 吧。

看到一个解答:

Just adding double_loadable:true in libselinux bp solves this issue,
as in the error report suggestion. And there was no issue in bootup
upon this build image. google 论坛
https://groups.google.com/forum/#!topic/android-building/67sFi481Gto

他说可以根据报错,把libselinux bp 修改一下。但是这个在哪里,也没说。
好吧,我自己找了半天也没有找到。
最后去google 搜索:aosp libselinux
https://android.googlesource.com/platform/external/libselinux/

OK,可能是在aosp/external 下面。看了下,果然有。但是没有libselinux.bp.这下面有Android.bp

ok,修改下。编译可以了。

修改路径如下:

解决方法总结:

去aosp/external/selinux/libselinux 下修改下Android.bp
修改内容如下:

cc_library {    name: "libselinux",    defaults: ["libselinux_defaults"],    vendor_available: true,    vndk: {        enabled: true,    },    recovery_available: true,        double_loadable:true,    host_supported: true,    cflags: ["-DUSE_PCRE2"],    srcs: [        "src/label_file.c",        "src/regex.c",    ],

增加了 double_loadable:true,

注意:
如果你的报错和我的不太一样,你要看你的报错的地方,他会告诉你哪个地方没有设置double_loadable

 links a library "libselinux" which is not LL-NDK, VNDK-SP, or explicitly marked as 'double_loadable:true'. 

总结:

1.其实编译报错,哪里出错,人家都说了。你要尝试去理解。 解决问题的关键一定在报错里面。

2.自己英文还是太差。

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. android8.0 otg链接u盘,相册里面的内容没有同步
  3. Android(安卓)内存泄漏检测
  4. Android(安卓)去掉标题栏,状态栏,导航栏
  5. android快捷设置标题样式布局
  6. 在线查看android源代码的3种方式
  7. Android界面设计的一点体会
  8. Android(安卓)反编译apk
  9. Android(安卓)在代码中动态设置字体颜色需要注意的问题

随机推荐

  1. 可能是最通用全面的Android(安卓)studio
  2. Android HotFix
  3. Androi与html中的JavaScript之间方法相互
  4. Android 一套完整的 Socket 解决方案
  5. Android Notes 之 自定义View(2) 之 绘图AP
  6. Android TTS学习――TTS初体验(上)
  7. Android studio导入第三方类库
  8. Android studio怎样添加assets文件
  9. android studio 3.0版本下使用lambda表达
  10. This version of android studio is inco