安卓开发中如何添加RxJava库

8
考虑以下项目结构:

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

我从http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.netflix.rxjava%22%20AND%20a%3A%22rxjava-core%22下载了 .jar 文件(sources.jar),但我也尝试了其他文件。
然后,我在 SubProject 中创建了 lib 文件夹,并将 .jar 文件放入其中。
在 Android Studio 中,我右键单击库并选择“添加为库...”,级别为“项目库”,模块为“SubProject”。
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.gradle文件中添加一行代码:
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”文件夹可以吗?


是的,您必须自己创建“libs”文件夹。请查看此答案 - MAC
@Mac:谢谢。但我可能还是缺少了什么。我确实创建了libs文件夹,将.jar文件复制到那里,但它不起作用。也许libs文件夹放错地方了? - Vojtech B
可能是将jar库导入Android Studio的重复问题。 - Scott Barta
好的,首先观察到的是,在编译文件时,“compile files 'libs/rxjava-core-0.16.0-sources.jar'”是正确的语法。但这并没有解决问题。 - Vojtech B
我在Pluralsight课程中发现了这个RxJava的导入:compile "com.netflix.rxjava:rxjava-core:0.16.1"。这有什么区别吗? - filthy_wizard
3个回答

18

您可以尝试添加以下内容:

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

别忘了点击“与Gradle文件同步项目”按钮。


8
最新的 Gradle 依赖应该是:
compile 'io.reactivex:rxjava:1.0.10'

参考此链接

如果您正在使用RxAndroid,则可以访问https://search.maven.org/artifact/io.reactivex/rxandroid/。 - Hanry

0

首先需要添加代码compile 'libs/rxjava-core-0.16.0-sources.jar',你可以在 libs 文件夹中选择库并找到“同步+库名称”来重新构建它,然后就可以使用该库了。希望能对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接