2013-12-10 3 views
2

ОбновлениеИсточник Android-источника: ошибка при выполнении mm?

Я получил эту работу. Как я не уверен. Я вообще ничего не изменил. Что я сделал:

  • Изменить Dialog в frameworks/base/core/java/android/app.
  • Пошел к моему корню (/path/to/source/).
  • Тогда я сделал mmm frameworks/base/.

Все работало. Тогда я попытался именно то, что я уже пробовал ниже:

  • Изменить ScrollView (я на самом деле никогда не говорил, какой файл я модифицирования) в frameworks/base/core/java/android/widget.
  • I ch 'ed до 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: * 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 снова, чтобы получить эмулятор для запуска и применить свои исправления.

Проверка папки out/target/product/generic/ после использования команды mm, 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?

ответ

0

Это случилось со мной.

Я смог решить эту проблему с помощью команды mmm.

Изнутри рамки/основной папки, я сделал:

mmm . 

и после того, как все команды «мм» работал.

«mm -B» vs «mm»: Переключатель -B, если вы не заставляете сборку использовать любые существующие файлы obj (как чистые, а затем строят), где только команда «mm» использовать любые существующие файлы obj и продолжать сборку оттуда. Если у вас есть успешная сборка, вы можете увидеть, что работающий «мм» ничего не предпримет, где «mm -B» выполнит полную сборку текущего модуля.

+0

Я вижу, спасибо. Вы знаете, почему 'mm' не работал в первый раз? –

+0

Нет, я понятия не имею. Это особенно странно, потому что я уверен, что работа «mmm » или «мм» внутри должна делать то же самое. – Udinic

+1

Я сделал make clean и сделал, после этого как 'mm', так и' mmm' перестали работать для папки 'frameworks/base /'. Что я сделал, чтобы исправить это, было использовать команду 'mmm frameworks/base/core/res', тогда я мог бы использовать мои предыдущие команды. –

Смежные вопросы