Использование пользовательских атрибутов в тестах Android Instrumentation - PullRequest
0 голосов
/ 16 августа 2011

У меня есть проект Android, содержащий два подпроекта (приложение и тесты инструментовки).Все работало нормально с maven-android-plugin, пока я не добавил некоторые собственные атрибуты (res / values ​​/ attrs.xml) в свое приложение.Чтобы использовать пользовательские атрибуты, я должен был определить новое пространство имен в своем ссылочном xml-файле (res / xml / someFile.xml): <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fosslab="http://schemas.android.com/apk/res/org.fosslab.android.hazard"> Само приложение работает нормально, но у проекта тестирования инструментальных средств есть другое имя пакета, объявленное в AndroidManifest.xml, и именно поэтому проект тестирования инструментов не может быть собран.

Ошибка: hazard-it/res/xml/settings_filter.xml:4: error: No resource identifier found for attribute 'stepSize' in package 'org.fosslab.android.hazard'

Перед сборкой проекта измерительных приборов все файлы из res / * (из проекта приложения) копируются.в проект инструментария.

Ошибка кажется очевидной, потому что для теста инструментария декларация пространства имен должна быть org.fosslab.android.hazard.tests.

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

Редактировать: Решил проблему, удалив всю папку res из проекта инструментов и прекратив копировать ресурсы из приложения визмерительные приборы.Помечены app apklib и app jar, как предусмотрено в pom.xml, и все кажется работающим.

1 Ответ

0 голосов
/ 04 июля 2012

Ваше решение позволяет скомпилировать проект, но оно не включает его в файл dex.

Мне удалось решить эту проблему с помощью пространства имен, подобного этому:

xmlns:something="http://schemas.android.com/apk/lib/the.package.name"

Обратите внимание на /lib/ вместо /res/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...