Eclipse Android: ошибка при выполнении aapt: код возврата 138, я ничего не делаю, чтобы исправить это

Я пытаюсь добавить кнопки действий панели действий на панель действий в своем приложении для Android. Каждый раз, когда я добавляю кнопку действия в res/menu/(какой-то файл xml), я продолжаю получать сообщение об ошибке aapt:Return code 138. Поэтому, хотя eclipse говорит, что ошибка не из-за моего кода, это должно быть из-за моего кода . Как и всякий раз, когда я добавляю кнопку действия в файлы xml, которые я создал в каталоге «меню», появляется ошибка. Согласно это, это связано с тем, что моя строка не объявляется в res/values/strings.xml. Но даже когда я объявляю там свои строки, ошибка все равно появляется! Это просто бесит. Я собираюсь включить свое меню и XML-файлы строк ниже, на случай, если с ними что-то не так. Если вам нужна дополнительная информация или у вас есть другой вопрос, не стесняйтесь спрашивать.

файл strings.xml

<resources>

        <string name="app_name">Beacon Portal</string>
    <string name="action_settings">Settings</string>
    <string name = "edit_item">Action Bar Icon Edit</string>
        <string name="hello_world">Hello world!</string>
        <string name="Fragment1">This is where the schedule goes when I get around to making that because it seems like some people want that</string>
        <string name="FragmentTab1">This is ViewPager Fragment Tab 1</string>
        <string name="FragmentTab2">This is ViewPager Fragment Tab 2</string>
        <string name="drawer_open">Open navigation drawer</string>
        <string name="drawer_close">Close navigation drawer</string>


        <!-- Nav Drawer Menu Items -->
        <string-array name="nav_drawer_items">
            <item >Schedule</item>
            <item >Homework Due</item>
            <item >Logout</item>

        </string-array>

        <!-- Nav Drawer List Item Icons -->
        <!-- Keep them in order as the titles are in -->
        <array name="nav_drawer_icons">
            <item>@drawable/ic_action_go_to_today</item>
            <item>@drawable/ic_action_duehomework</item>
            <item>@drawable/ic_action_logout</item>

        </array>

        <!-- Content Description -->
        <string name="desc_list_item_icon">Item Icon</string>

         <!-- general stuff -->

        <string name="userid_label">OpenMinds</string>

        <!-- titles -->
        <string name="title_activity_actionview">ActionView</string>
        <string name="title_activity_about">About</string>

        <!-- ActionBar -->
        <string name="edit">Edit Schedule</string>
        <string name="apply">Apply Edits</string>


      </resources>

menu_fragment_apply.xml (в res/menu/)

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/actionViewApply"
        android:icon="@drawable/ic_action_agree"
        app:showAsAction="ifRoom"
        android:title="@string/apply"/>

</menu>

person I'm_With_Stupid    schedule 08.03.2014    source источник
comment
Вы пытались очистить проект? В меню Проект -> Очистить   -  person Micer    schedule 09.03.2014
comment
Это было первое, что я сделал.   -  person I'm_With_Stupid    schedule 09.03.2014


Ответы (7)


Проблема в

приложение: showAsAction = "ifRoom"

Которые должны быть

Android: showAsAction = "ifRoom"

вместо. Используйте app:showAsAction, когда вы используете библиотеку совместимости приложений, которую, как я предполагаю, вы здесь не используете.

person Tor Norbye    schedule 11.04.2014
comment
Большое спасибо. У меня была другая ошибка в файле menu, но она вызвала тот же результат. Eclipse не указал, что там была ошибка, поэтому я бы никогда ее не нашел. - person karl; 08.07.2014

Я только что решил эту проблему.

Это было вызвано тем, что я удалил изображение из папки с возможностью рисования, когда у меня все еще был файл layout.xml, который ссылался на удаленное изображение.

Я решил проблему, выполнив поиск по всему проекту имени удаленного значка и удалив все ссылки на отсутствующий значок. Затем я перестроил проект, и ошибка исчезла.

person bavundra    schedule 05.05.2014
comment
У меня была такая же проблема, но с отсутствующей строкой, которую я переименовал в strings.xml. Почему Eclipse не сообщает вам, где в xml содержится ссылка на отсутствующую строку, а не полностью выбрасывает? Похоже на ошибку. - person locke; 22.05.2014

Получение этой ошибки означает, что ваша установка Android, вероятно, каким-то образом повреждена. Обычно эта ошибка возникает в проектах в определенных случаях, таких как создание нового значка или добавление нового файла xml. Если вы видите эту ошибку в окне «Проблемы» после очистки, попробуйте сначала закрыть и снова открыть Eclipse, а затем выполнить Project => Clean.

Если такое же сообщение повторяется, возможно, вам потребуется выполнить полную переустановку ADT Bundle, в которую входит Eclipse. Вам следует удалить весь существующий ADT bundle с вашего компьютера (включая Eclipse и SDK folder) и повторно загрузить пакет, извлечь содержимое и выполнить повторную установку с нуля. Пользователи редко сталкиваются с этой ошибкой после полной переустановки.

Ссылка: вики на github.com

person Micer    schedule 09.03.2014
comment
Спасибо за ответ, завтра попробую, а сейчас спать. Хотел бы я проголосовать за это, но недостаточно представителей. - person I'm_With_Stupid; 10.03.2014
comment
Я переустановил SDK и Eclipse, однако у меня это не сработало, все еще есть ошибка aapt 138. - person scottyab; 18.03.2014
comment
I'm_With_Stupid прав, это ошибка aapt: она находит ошибку в вашем xml, но не может показать вам, где именно. - person Rodrigo Dias; 15.04.2014

Так что я так и не понял, в чем проблема, но временное исправление, которое я выяснил, заключалось в том, что каждый раз, когда я добавлял новый файл меню, мне приходилось удалять все файлы меню, включая новый, а затем очищать и обновлять. После этого мне пришлось бы снова добавить все файлы меню, а затем очистить и обновить, и ошибка исчезла. Действительно раздражает, но, по крайней мере, это сработало для меня.

person I'm_With_Stupid    schedule 03.04.2014

У меня была эта ошибка, потому что я определил ресурс меню в проекте библиотеки, а не в основном проекте приложения для Android.

person sourcerebels    schedule 22.05.2014

Еще одна причина, по которой это может произойти, заключается в том, что для цели сборки проекта (в настройках проекта -> Android) установлена ​​слишком низкая версия, поэтому XML несовместим с инструментом, который его обрабатывает.

У меня только что была эта проблема, манифест был minSdkVersion = 9, targetSdkVersion = 19, поэтому Eclipse установил цель сборки на 9. Сброс на 14 заставил проблему исчезнуть - к тому времени я уже заставил своих подчиненных искать какой-то XML. контроля версий или какой-то неправильный идентификатор;)

person epx    schedule 29.05.2014

Я только что столкнулся с этой проблемой в эти дни в ADT для Mac. Не удается сгенерировать файл R, потому что код возврата 138, и, наконец, я разрешаю его, обнаружив, что в файлах String.xml отсутствует строка, и она вызывается в другом коде. Может быть, вы можете попробовать ...

person user3749423    schedule 17.06.2014
comment
Добро пожаловать в СО. Обычно люди оставляют пример кода в своих ответах, чтобы ОП мог быстрее определить решение проблемы. Не могли бы вы поделиться, какая строка отсутствовала и/или +/-, где она находилась? - person Hristo Valkanov; 17.06.2014