更新
我得到了这个工作。我怎么不确定。我根本没有配置更改。我做的是:
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
做了什么?
答案 0 :(得分:1)
它也发生在我身上。
我可以使用mmm命令解决它。
在framework / base文件夹中,我做了:
mmm .
之后所有“mm”命令都有效。
“mm -B”vs“mm”: -B开关如果强制构建没有使用任何现有的obj文件(如干净然后构建),其中“mm”命令单独使用任何现有的obj文件并从那里继续构建。 如果你有一个成功的构建 - 你可以看到运行“mm”不会做任何事情,“mm -B”将完成当前模块的完整构建。