Android Studio добавляет библиотеку rxjava

Рассмотрим следующую структуру проекта:

MainProject
-.idea
-.grandle
-src
-SubProject
--libs //I created this folder manually
---rxjava-core-0.16.0-sources.jar
--src
---main //+ all the sources
--build.grandle
--SubProject.iml
-build.grandle
-//other files

Я скачал .jar с сайта http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.netflix.rxjava%22%20AND%20a%3A%22rxjava-core%22 (sources.jar) - но я пробовал и другие

Затем я создал папку lib в подпроекте, а затем поместил в нее .jar.

В Android Studio я щелкнул правой кнопкой мыши по библиотеке и выбрал «Добавить как библиотеку...» с уровнем: «Библиотека проекта» и модулем: «Подпроект».

В rxjava используется имя пакета "rx". У меня есть код, который импортирует этот пакет:

import rx.Observable;
import rx.Observer;
import rx.Subscription;
import rx.subscriptions.Subscriptions;

При сборке проекта возникает следующая ошибка:

Gradle: package rx does not exist
Gradle: package rx.util.functions does not exist
Gradle: cannot find symbol class Action1
...

Я обнаружил, что необходимо добавить строку в SubProject/build.grandle:

dependencies {
    compile 'libs/rxjava-core-0.16.0-sources.jar' //added line
    compile 'com.android.support:support-v4:19.0.0'
    compile 'com.android.support:appcompat-v7:19.0.0'
}

но потом выдает:

Gradle: A problem occurred evaluating project ':SubProject'.
> The description libs/rxjava-core-0.16.0-sources.jar is invalid

Я попытался переместить .jar по структуре проекта, но пока безуспешно.

Как правильно добавить стороннюю библиотеку в проект? Это нормально, что я сам создал папку «libs»?


person Vojtech B    schedule 11.01.2014    source источник
comment
Да, вам нужно создать папку libs самостоятельно. Взгляните на ЭТО ответ.   -  person MAC    schedule 11.01.2014
comment
@Mac: спасибо. Но я, наверное, что-то упускаю. Я создал папку libs, я скопировал туда файл .jar, но он НЕ РАБОТАЕТ. Может быть, папка libs находится не в том месте?   -  person Vojtech B    schedule 11.01.2014
comment
возможный дубликат импорта jar-библиотек в android-studio   -  person Scott Barta    schedule 11.01.2014
comment
Хорошо, первое наблюдение заключается в том, что при компиляции файлов 'libs/rxjava-core-0.16.0-sources.jar' является правильным синтаксисом. Хотя не решил проблему   -  person Vojtech B    schedule 12.01.2014
comment
я нашел этот импорт для rx java в компиляции курса с множественным числом com.netflix.rxjava:rxjava-core:0.16.1, в чем разница??   -  person filthy_wizard    schedule 16.01.2016


Ответы (3)


вы можете просто попробовать добавить:

compile 'com.netflix.rxjava:rxjava-android:0.16.1'

и не забудьте нажать кнопку «Синхронизировать проект с файлами Gradle».

person Reza    schedule 03.02.2014

Последняя зависимость для gradle должна быть:

compile 'io.reactivex:rxjava:1.0.10'

Перейдите по этой ссылке.

person peacepassion    schedule 03.06.2015
comment
Если вы используете rxandroid, то search.maven.org/artifact/io.reactivex/rxandroid - person Hanry; 22.08.2019

сначала вам нужно добавить код compile 'libs/rxjava-core-0.16.0-sources.jar' вы можете выбрать библиотеку в папке libs и найти «Синхронизировать + имя библиотеки», чтобы перестроить ее, затем вы можете использовать библиотеку. надежда может помочь вам

person Justlove_DK    schedule 19.08.2015