首页 文章

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

提问于
浏览
2

Update

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

  • 修改 Dialog 中的 Dialog .

  • 去了我的根( /path/to/source/ ) .

  • 然后我做了 mmm frameworks/base/ .

一切正常 . 然后我尝试了我在下面尝试过的内容:

  • 修改 ScrollView (我实际上从未说过我在修改哪个文件) frameworks/base/core/java/android/widget .

  • I ch 'ed to frameworks/base/core/java/android/widget .

  • 然后我做了 mm .

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

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

/Update

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

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

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

make:*没有规则来制作目标out / target / product / generic / system / framework / framework-res.apk',需要out / target / product / generic / system / framework / framework.jar' . 停止 . make:将目录`/ path /留给/ 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 / kernel out / target / product / generic / data 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 / system 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_int ermediates *完成清洁,现在开始真正的构建 . make:输入目录`/ path / to / source /'

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

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

我也看过命令 mm -B-B 做了什么?

1 回答

  • 1

    它也发生在我身上 .

    我能够使用mmm命令解决它 .

    从框架/基本文件夹中,我做了:

    mmm .
    

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

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

相关问题