NoClassDefFoundError в android

Рейтинг: 1Ответов: 1Опубликовано: 12.11.2014

Доброго времени суток!

Столкнулся с такой проблемой. Использую класс Uri.Builder, и в связи с этим у меня в рантайме вываливается ошибка NoClassDefFoundError. При компляции все хорошо, ошибок нет. Насколько я понимаю, у меня отсутствует необходимый jar или что-то в этом роде. Только что начал работать с maven и пока не очень понимаю что к чему. В pom файле есть такая секция:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.1.1</version>
</dependency>

В Интернете читал, что типа maven сам найдет в своих репозиториях по groupId и по artifactId, какие именно библиотеки подключать. Но все равно при запуске получаю исключение NoClassDefFoundError. Подскажите, пожалуйста, как это поправить?

Обновление

Стек трейс очень длинный, поэтому приведу лишь часть. Если нужно, то могу потом привести и остальное:

java.lang.NoClassDefFoundError: android/net/Uri$Builder
at com.dt.contentproviders.providers.Provider.createUrl(Provider.java:44)
at com.dt.contentproviders.providers.AudioProvider.get(AudioProvider.java:66)
at com.dt.contentproviders.test.ContentProviderTestTwo.testGetString(ContentProviderTestTwo.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Еще добавлю, что в проекте самого приложения появилась ошибка:

java.lang.RuntimeException: Unable to instantiate activity

Раньше этой ошибки не было. Она появилась после того, как я конвертировал проект из обычного в maven.

Обновление 2

Вот зависимости из pom:

<dependencies>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.1.1</version>
</dependency>

<dependency>
    <groupId>android-support-v7-appcompat</groupId>
    <artifactId>android-support-v7-appcompat</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>

Ответы

▲ 1

Скорее всего, у вас проблема в том, что вы берете из Maven либу org.apache.httpcomponents, непортированную под Android.

Надо написать что-то вроде:

dependencies {
    compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5'
}

Источник