2012-06-11 1 views
41

В новейшей версии ADT (версия 20 просмотр 3), они говорят, что это можно сделать файл манифест библиотек становится объединяем с проектами, которые их используют:Используя новое свойство «manifestmerger» в Android

Автоматическое слияние файлов манифеста проекта библиотеки, включая манифест проекта . Включить с помощью свойства manifestmerger.enabled.

Как и где его использовать? Я не вижу, чтобы контент помогал мне в этом.

+1

Также есть ли какая-либо информация о том, что она объединяет? Я принимаю действия? – Peterdk

+0

Я так думаю. Я также думаю, что все остальное, как и разрешения. –

+0

Я заметил, что он не объединяет свойства запуска актива, но все действия, которые он определенно делает. – Peterdk

ответ

63

Добавьте следующую строку:

manifestmerger.enabled=true 

вашему project.properties файл вашего проекта приложения.

+0

спасибо. похоже, что они добавили его в последнее время в свою документацию и видео. Я забыл, что даже задал этот вопрос. –

+0

Я чувак, это не работает для меня, к сожалению ... Я добавил эту строку в мои project.properties, но так как я называю «startActivity» в своем коде, он сбой с «ActivityNotFoundException» ... Что я могу сделать, чтобы предотвратить это? Thx заранее помощник. – ChristopheCVB

+1

Неплохо, я просто добавлял тэг 'activity' в манифест Libs без тега' application' ... Отлично работает! большое спасибо ! – ChristopheCVB

5

FYI: manifestmerger.enabled = true не будет объединять файлы манифеста, если вы используете экспортированное приложение eclipse. Как отмечено здесь, это, кажется, ошибка. http://code.google.com/p/android/issues/detail?id=34623

Для меня было немного хлопот, чтобы настроить правильное слияние. (перезапуск eclipse, откройте закрытый проект ..) Чтобы узнать, работает ли слияние, посмотрите файл в ./Your_Main_Project/bin/AndroidManifest.xml. Если слияние сработало, вы увидите полный результат в этом файле.

EDIT: Эта ошибка была исправлена ​​в ADT v20.0.1 (Juli 2012): http://developer.android.com/tools/sdk/eclipse-adt.html

+0

действительно? так почему они сделали эту функцию? Я думал, что eclipse - лучшее, что поддерживает Google в качестве среды IDE. также, даже без подписания приложения (что означает просто компиляция и запуск из затмения), это не сработало для меня. –

+0

его особенность не является ошибкой. Все было нормально для меня, когда я пытался экспортировать подписанное приложение. – Vadimo

+0

ты меня не понял. это функция, которая просто не работает для меня, даже при запуске приложения без знака. я не понимаю. как они могут опубликовать функцию, которая не работает вообще? –

9

Если вы хотите объединить андроид проект библиотеки манифеста и ваш текущий проект манифеста, вы должны добавить manifestmerger.enabled=true в проекте .properties, где вы ссылались на свой проект библиотеки. Но вам следует подтвердить некоторую точку, например, версию ADT. Также минимальный и целевой SDK должен быть таким же, как проект библиотеки.

+1

У меня возникла проблема с тем, что R.java больше не был найден, меняя min и target sdk решили это для меня. Благодарю. – Anthea

2

Я столкнулся с некоторыми ошибками во время слияния манифеста (файл R.java пропал без вести), поэтому я явно скопировал содержимое манифеста (например, я скопировал только содержимое активности) из манифеста проекта библиотеки и поместил их в мой основной манифест проекта , Это разрешило ошибку, и все, кажется, хорошо работает до сих пор. Дайте мне знать, если кто-то считает, что это не рекомендуемая альтернатива слиянию манифеста.

+0

Я могу подтвердить, что через 3 года после «исправления ошибок» у нас все еще возникают проблемы с слиянием. Отключение и слияние файлов разрешили проблему в Eclipse. Никаких проблем с автоматическим слиянием Android Studio пока. – mass

+0

Такая же проблема здесь. –

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