android - 构建 Android 源代码 : error when executing mm?

标签 android compilation makefile android-source rom

更新

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

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

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

  • frameworks/base/core/java/android/widget中修改ScrollView(其实我没说我修改的是哪个文件)。
  • chframeworks/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/

相关文章:

c - 使用交叉编译器运行 Makefile 时出错

android - adb wifi经常掉线,如何保持adb在线?

在 Visual Studio 2010 中编译 C 而不创建 .EXE 文件

android - 版本更新后许可证检查器崩溃

java - 在命令行中编译和运行Java类包?

javascript - javascript 的 "on the fly"编译实际上是如何工作的?

c - 设备驱动程序 Hello world 的 make 文件出错

android - 最简单的是/否对话框 fragment

android - 方法未定义 : manageConnectedSocket()