Android - UI Automation с использованием Robotium с использованием Eclipse - PullRequest
2 голосов
/ 14 июля 2011

Я пытаюсь запустить свои тесты пользовательского интерфейса для Android проекта, используя Robotium, но всякий раз, когда я пытаюсь запустить его из командной строки или Eclipse, он выдает мне эту ошибку:

INSTRUMENTATION_RESULT: longMsg=java.lang.IllegalAccessError: 
    Class ref in pre-verified class resolved to unexpected implementation

В logcat также выдает ошибку, которая говорит:

java.lang.NoClassDefFoundError: com.bridgepointeducation.talon.TalonModule

, хотя у меня нет com.bridgepointeducation.talon.TalonModule.

Кто-нибудь знает, как решить эту проблему? Спасибо!

Ответы [ 3 ]

7 голосов
/ 10 августа 2011

Я видел эту проблему, когда предоставляются две копии одного класса / фляги. Например, если вы зависите от сторонней библиотеки как в своем проекте Android, так и в тестовом проекте, по какой-то причине она включается дважды.

Зависит от того, как вы строите / запускаете свои тесты, чтобы определить, как это исправить. Из eclipse вы можете экспортировать нарушающую библиотеку в проект android, и она будет помещена в путь к классам тестового проекта. В maven вы можете пометить его как предоставленную область. В ant я полагаю, что вы просто не включили бы его локально в тестовый проект (в libs или иным образом), и он был бы извлечен из classpath проекта android.

1 голос
/ 05 декабря 2014

Я столкнулся с подобными проблемами во время инструментирования, когда я получил ошибку Класс ref в предварительно проверенном классе, разрешенный к неожиданной реализации

После журнала борьбы я мог решить проблему.Проблема возникла из-за android-support-v4.jar.Этот jar по умолчанию создается в папке lib проекта android.JAR-файлы, добавленные в папку lib, используются во время компиляции, а также во время выполнения для инструментального проекта.Когда я запускал инструментарий, целевое приложение начало использовать android-support-v4.jar, связанный с проектом инструментария, вместо собственного android-support-v4.jar.Это вызывает предварительно проверенное исключение класса во время выполнения (так как версия будет отличаться).

Чтобы решить эту проблему, я переместил android-support-v4.jar из папки lib и поместил в другую папку (скажем, libforcompile).) и добавьте его в качестве внешнего файла Jar (Свойства проекта -> Путь сборки Java -> Библиотеки -> нажмите «Добавить внешние банки»).

Таким образом, мой инструментальный проект скомпилирован нормально, и когда он запустился, он использовал android-support-v4.jar самого целевого приложения

Больше ошибок нет ..

Надеюсьэто помогает

С уважением Indraneel

0 голосов
/ 09 августа 2011

Похоже, классы реализации, с которыми он пытается запустить тесты, не соответствуют ожиданиям.Когда вы запускаете тесты, вы должны указать тестовый пакет и пакет для запуска тестов.

Вы уверены, что пакет, с которым он выполняет тесты, совпадает с пакетом, включенным в classpath?Может быть, тесты выполняются на устаревшей версии?

Кроме того, если ваш проект включает в себя любые другие библиотеки (.jars), вы должны убедиться, что они также включены в classpath тестов.

РЕДАКТИРОВАТЬ: оглядываясь вокруг, я нашел похожую проблему и решение здесь: Невозможно собрать и запустить тестовый проект Android, созданный с помощью "ant create test-project", когда у тестируемого проекта есть jar-файлы в каталоге libs

Вы должны изменить свой файл build.xml, чтобы переопределить некоторые цели по умолчанию для Android, чтобы включить сторонние библиотеки (.jars)

...