更新
我得到了这个工作。我不确定。我根本没有进行任何配置更改。我所做的是:
- 修改
frameworks/base/core/java/android/app
中的Dialog
。 - 转到我的根目录 (
/path/to/source/
)。 - 然后我做了
mmm frameworks/base/
。
一切正常。然后我完全尝试了我已经在下面尝试过的方法:
- 在
frameworks/base/core/java/android/widget
中修改ScrollView
(其实我没说我修改的是哪个文件)。 - 我
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: * No rule to make target
`out/target/product/generic/system/framework/framework-res.apk',
needed by `out/target/product/generic/system/framework/framework.jar'.
Stop.
make: Leaving directory `/path/to/source/'
让我再次执行 make -j32
以使模拟器运行并应用我的修复。
在使用 mm
命令后检查 out/target/product/generic/
文件夹,system.img 已与其他几个东西一起被删除。
当我阅读日志时,打印出来的是:
* Forcing "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_intermediates
* Done with the cleaning, now starting the real build. make: Entering directory `/path/to/source/'
我的猜测是它会清除“过时的”数据,然后使用已经预构建的 Android 源代码重建它,但我在 frameworks/base/core/java/android/widget
文件夹中进行了更改.
这是正确的方法吗?我的印象是 mm
会编译当前目录中需要的内容,并以某种方式将此数据插入 system.img。
我也看到了命令mm -B
,-B
有什么作用?
最佳答案
我也遇到过。
我能够使用 mmm 命令解决它。
在 framework/base 文件夹中,我做了:
mmm .
然后所有“mm”命令都起作用了。
“mm -B”与“mm”: -B 开关如果强制构建不使用任何现有的 obj 文件(就像先清理然后构建),其中单独的“mm”命令将使用任何现有的 obj 文件并从那里继续构建。 如果构建成功 - 您可以看到运行“mm”不会执行任何操作,其中“mm -B”将对当前模块进行完整构建。
关于android - 构建 Android 源代码 : error when executing mm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20490107/