Ошибка NoClassDefFound с OrmliteSqliteOpenHelper - PullRequest
1 голос
/ 27 ноября 2010

У меня есть класс, который расширяет OrmliteSqliteOpenHelper для обеспечения модуля персистентности для приложения Android. Проблема в том, что всякий раз, когда я получаю доступ к этому классу из тестового проекта в Eclipse, он генерирует исключение NoClassDefFound. Исходный код выглядит нормально, так как пакет импортирован, и в Eclipse нет подсветки, указывающей, что что-то пойдет не так, но это так.

Вот кикер: не только все остальное в проекте работает нормально при доступе из тестового проекта, но и когда я перемещаю этот файл в тестовый проект, вуаля, он работает отлично! Проблема заключается в том, что он должен быть в реальном проекте, чтобы другие компоненты могли вызывать его. Кто-нибудь когда-нибудь сталкивался с этой ошибкой или есть идеи, где я могу пойти не так?

Путь к классу установлен правильно, так как все остальные классы работают, и тестовый проект всегда добавляет основной проект к своему пути к классам. Я также попытался переместить объект OrmliteSqliteOpenHelper во внутренний класс: это позволило внешнему классу быть видимым и затронутым, но как только он попытался создать экземпляр внутреннего класса, возникает та же ошибка. Кроме того, если я копирую этот файл в оба проекта в одном и том же пакете, возникает ошибка, указывающая «ссылка на класс в предварительно проверенном классе, разрешенном до неожиданной реализации» всякий раз, когда что-то в основном проекте пытается получить доступ к этому классу. Ясно, что существует некоторая разница в том, как класс компилируется / обрабатывается между двумя проектами.

Я довольно озадачен: / Спасибо большое за любую помощь!

Ответы [ 2 ]

0 голосов
/ 21 апреля 2011

Вот как я решаю проблему:

  • Удалите OrmLite из пути сборки тестового проекта.
  • Экспорт их из основного проекта.
0 голосов
/ 27 ноября 2010

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

Почему это работает?Я понятия не имею, возможно, кто-то мог бы просветить нас в этом факте.
Это работает?А пока ...

...