2013-04-17 3 views
0

Есть ли ограничение по XML/макету/ресурсу для Android-проектов/какой-то момент в компиляции toolchain? Добавление единственного (неиспользуемого, любого содержимого) файла макета XML в мой проект Android приводит к ошибке рендеринга в другом месте приложения. Удаление его исправляет. Является ли это ошибкой в ​​какой-то части компиляции, и как я могу ее диагностировать или исправлять?Добавление двух файлов XML приводит к ошибке-ошибке. Wat?


Некоторый дополнительный контекст:

У меня есть относительно большого Android проекта. Сегодня я столкнулся с проблемой при добавлении функции: фоновая выделенная кнопка не отображалась, пока я не повернул приложение. Другие фоны/стили/стилизованные кнопки все еще работают, но этот фон очень сильно сломан, везде в приложении. Вращение фиксирует экран, на котором он включен, и каждый последующий экземпляр кнопки, до перезапуска процесса приложения.

После лота проб и ошибок, а также дебазация и экспериментирование, у меня есть некоторый уровень минимального воспроизведения, который является абсолютно надежным: добавление еще двух файлов макета XML в мой текущий проект вызывает ошибку. В частности, добавление 40-го XML-файла в папку только/res/layout. Удаление его позволяет кнопке правильно отображать, добавляя ее, чтобы разбить ее.

Файлы могут быть полностью неиспользованы, полностью с нуля, с любым содержимым и любым именем. Никаких других изменений проекта. Я использую обновленную версию Eclipse и Android SDK - я могу получить конкретные номера версий, если это необходимо. Он был реплицирован с этим проектом на компьютере коллектива с аналогичной настройкой. Я очистил, перестроил, вручную удалил продукты сборки, перезапустил мой компьютер, ошибка сохранилась.

Должно быть что-то более конкретное, вызывающее его, и мне бы хотелось предложения, которые помогут сузить его. К сожалению, это выходит за рамки моих знаний о системе сборки Android, и это не похоже на то, что непосредственно вызвано мной. Может ли кто-нибудь помочь? Или указать мне дополнительные ресурсы?


Подробнее:

  • (не могу поверить, что я забыл это), это только кажется, произойдет на 2.3.6 устройств у меня есть. Это может происходить в других версиях 2.x, но 4.2.2 отображает кнопку правильно все время (хотя я не могу/не могу исключить ошибку в другом месте). Сегодня я буду испытывать эмуляторы.
  • Случается на нескольких устройствах Android, хотя они по сути являются запасами (без настраиваемых тем и т. Д.).
  • Текущая настройка приложения - это проект ядра-приложения, в котором используются три других проекта, которые используют этот основной проект для создания различных сборок (dev, production и т. Д.) Посредством слияния манифеста.
  • Этот конкретный ресурс с ресурсом имеет уникальный идентификатор R, как он должен, поэтому он не кажется там столкновением. Я не сравнивал его с значениями системы R - есть ли хороший способ сделать это?
  • Target SDK = 17, минимум = 8

Также интересно: переименование Drawable файла из "rounded_teal_button_normal" в "rounded_teal_button_nrml" ничего не меняет, но изменить его на "rounded_teal_button_aargh" ..Единственное важное отличие, которое я вижу, заключается в том, что «nrml» не изменяет алфавитный порядок файлов, а «aargh» (файл «_disabled» и «_pressed»). Однако это приводит к тому, что выталкиваемый теперь находится в «нормальном» положении, чтобы остановить рисование.

Изменение порядка выбора элементов состояния кнопки или состояние, которое вытягивает (или даже удаляет все другие стили), не имеет никакого эффекта.

Добавление третьего XML-файла вызывает проблему исчезнуть, и это, кажется, не вызывать по алфавиту, около вводимого коэффициента сломаться, но это очень трудно, чтобы быть уверенными, что это решение всех и «почему вопрос остается.

+0

нет ограничений на добавление компоновки xml в ваш проект. Но это замедлит ваше приложение. Все больше android xml означает, что пользовательский интерфейс должен быть раздутым и визуализированным. –

ответ

1

Для получения более образованных догадок необходима дополнительная информация. Однажды у меня возникла проблема, подобная той, которая происходила в версиях GB, но не выше, только если она скомпилирована на Mac; то же было прекрасно работать, если скомпилировано на окнах; проблема заключалась в том, что фоновое изображение не отображалось для кнопки. Мое фоновое изображение было 9-патч, и, наконец, я заметил, что это было вызвано не помещением соответствующих изображений во все drawable-[m | h | x] dpi; Я использовал его только в каталоге drawable-xhdpi, поэтому исправление устраняет проблему. Вы можете проверить эти проблемы. Например, эта проблема возникает только при определенных плотностях экрана или некоторых версиях Android и т. Д. Как говорит другой ответ, 40 xml далеки от каких-либо ограничений.

HTH, Ali.

+0

У этого есть вытачиваемый в корневой папке 'drawable' - это не изображение, это 3-элементный с цветами и фигурами. Я не думаю (?), Что имеет значение, если я должен добавить его в другие места, и это не было проблемой раньше, поэтому я склонен искать в другом месте. Я обновил главный вопрос с дополнительной информацией - взгляд на взгляд? И есть ли какая-нибудь информация, которую вы хотите? Я не совсем уверен, что будет полезно, и я не могу просто сбросить весь проект. – Groxx

+0

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

+0

Ничего похожего на все. Многое: «VFY: не удалось разрешить виртуальный метод 4109», а затем «VFY: замена кода операции 0x6f на 0x000b» и «VFY: мертвый код 0x000e-000f», но это все в библиотеке ActionBarSherlock (похоже,). В стороне, нет ничего похожего на ошибку. – Groxx

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