【问题标题】:Building Android source: error when executing mm?构建Android源:执行mm时出错?
【发布时间】:2013-12-27 17:05:54
【问题描述】:

更新

我得到了这个工作。我不确定。我根本没有进行任何配置更改。我所做的是:

  • frameworks/base/core/java/android/app中修改Dialog
  • 去了我的根 (/path/to/source/)。
  • 然后我做了mmm frameworks/base/

一切正常。然后我尝试完全我在下面已经尝试过的:

  • frameworks/base/core/java/android/widget 中修改ScrollView(实际上我从未说过我在修改哪个文件)。
  • ch'ed 到 frameworks/base/core/java/android/widget
  • 然后我做了mm

这一次我没有像以前删除文件时那样出现错误。现在它可以正常工作了。

也许这是一些缓存或错误?

/更新

我正在为模拟器构建 Android 源代码。我用make -j32 构建了整个代码,system.img 得到了输出out/target/product/generic/system.img。模拟器只需调用emulator即可工作。

当我使用hmm 文档对frameworks/base/core/java/android/widget 进行更改时,最合适的命令是mm 来构建当前目录。

不幸的是,我收到了一个错误:

make: * 没有制定目标的规则

`out/target/product/generic/system/framework/framework-res.apk',

`out/target/product/generic/system/framework/framework.jar'需要。

停下来。

make: 离开目录 `/path/to/source/'

让我再次执行make -j32 以让模拟器运行并应用我的修复程序。

使用mm 命令后检查out/target/product/generic/ 文件夹,system.img 已与其他几项内容一起删除。

当我阅读日志时,会打印出来:

* 强制“make installclean”...

* rm -rf out/target/product/generic/data/* out/target/product/generic/data-qemu/*

out/target/product/generic/userdata-qemu.img

out/host/linux-x86/obj/NOTICE_FILES out/host/linux-x86/sdk

out/target/product/generic/.img out/target/product/generic/.txt

out/target/product/generic/.xlb out/target/product/generic/.zip

输出/目标/产品/通用/内核输出/目标/产品/通用/数据

out/target/product/generic/obj/APPS

out/target/product/generic/obj/NOTICE_FILES

out/target/product/generic/obj/PACKAGING

out/target/product/generic/recovery out/target/product/generic/root

输出/目标/产品/通用/系统

out/target/product/generic/dex_bootjars

out/target/product/generic/obj/JAVA_LIBRARIES

out/target/product/generic/obj/FAKE

out/target/product/generic/obj/EXECUTABLES/adbd_intermediates

out/target/product/generic/obj/EXECUTABLES/init_intermediates

out/target/product/generic/obj/ETC/mac_permissions.xml_intermediates

out/target/product/generic/obj/ETC/sepolicy_intermediates

* 清理完毕,现在开始真正的构建。 make: 进入目录`/path/to/source/'

我的猜测是它会清理“过时”的数据,然后使用已经预构建的 Android 源代码重建它,但我在 frameworks/base/core/java/android/widget 文件夹中进行了更改。

这是正确的方法吗?我的印象是mm 会编译当前目录中需要的内容,并以某种方式将这些数据插入到 system.img 中。

我也见过mm -B这个命令,-B是做什么的?

【问题讨论】:

    标签: android compilation makefile android-source rom


    【解决方案1】:

    我也遇到过。

    我可以使用 mmm 命令解决它。

    在 framework/base 文件夹中,我做了:

    mmm .
    

    然后所有“mm”命令都起作用了。

    “mm -B”与“mm”: -B 开关如果强制构建不使用任何现有的 obj 文件(如先清理然后构建),则单独的“mm”命令将使用任何现有的 obj 文件并从那里继续构建。 如果你有一个成功的构建 - 你可以看到运行“mm”不会做任何事情,而“mm -B”将完成当前模块的完整构建。

    【讨论】:

    • 我明白了,谢谢。你知道为什么mm第一次没用吗?
    • 不,我不知道。这特别奇怪,因为我很确定在 内运行“mmm ”或“mm”应该做同样的事情。
    • 我做了一个 make clean 和 make,之后 mmmmm 停止为文件夹 frameworks/base/ 工作。我所做的修复它是使用命令mmm frameworks/base/core/res,然后我可以使用我以前的命令。
    • 我又遇到了这个问题,你的命令“mmm frameworks/base/core/res”也为我解决了。
    猜你喜欢
    • 2016-03-11
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    相关资源
    最近更新 更多