构建Android源:执行mm时出错?

时间:2013-12-10 09:05:26

标签: android compilation makefile android-source rom

更新

我得到了这个工作。我怎么不确定。我根本没有配置更改。我做的是:

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

一切顺利。然后我尝试完全我在下面尝试过的内容:

  • ScrollView修改frameworks/base/core/java/android/widget(我实际上从未说过我要修改的文件)。
  • ch已加入frameworks/base/core/java/android/widget
  • 然后我做了mm

这次我没有像以前那样删除文件时的错误。现在它正常运作。

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

/更新

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

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

不幸的是我收到了错误:

  

make:*没有规则来制作目标

     

`出/目标/产品/通用/系统/框架/框架-res.apk”,

      target / product / generic / system / framework / framework.jar'需要

     

停止。

     

make:离开目录   `/路径/到/源极/

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

使用out/target/product/generic/命令后检查mm文件夹,系统已删除了system.img以及其他一些内容。

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

  

* 强制“make installclean”......

     

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

     

出/目标/产品/通用/用户数据-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 / kernel out / target / product / generic / data

     

出/目标/产品/通用/ OBJ /应用

     

出/目标/产品/通用/ OBJ / NOTICE_FILES

     

出/目标/产品/通用/ OBJ /包装

     

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

     

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

     

出/目标/产品/通用/ dex_bootjars

     

出/目标/产品/通用/ OBJ / JAVA_LIBRARIES

     

出/目标/产品/通用/ OBJ / FAKE

     

出/目标/产品/通用/ OBJ /可执行/ adbd_intermediates

     

出/目标/产品/通用/ OBJ /可执行/ init_intermediates

     

出/目标/产品/通用/ OBJ / ETC / mac_permissions.xml_intermediates

     

出/目标/产品/通用/ OBJ / ETC / sepolicy_intermediates

     

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

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

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

我还看到了mm -B命令,-B做了什么?

1 个答案:

答案 0 :(得分:1)

它也发生在我身上。

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

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

mmm .

之后所有“mm”命令都有效。

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