我升级到Android工作室版本3.0 Canary 8并按照Android工作室的自动提示将android gradle插件版本升级为"3.0.0-alpha8".
我的Jenkins构建现在无法解析"com.android.tools.build:gradle:3.0.0-alpha8.".以下是构建错误日志
Could not resolve all files for configuration ':classpath'.
Could not find com.android.tools.build:gradle:3.0.0-alpha8.
Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-alpha8/gradle-3.0.0-alpha8.pom
https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-alpha8/gradle-3.0.0-alpha8.jar
https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.0-alpha8/gradle-3.0.0-alpha8.pom https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.0-alpha8/gradle-3.0.0-alpha8.jar https://maven.fabric.io/public/com/android/tools/build/gradle/3.0.0-alpha8/gradle-3.0.0-alpha8.pom https://maven.fabric.io/public/com/android/tools/build/gradle/3.0.0-alpha8/gradle-3.0.0-alpha8.jar
Run Code Online (Sandbox Code Playgroud)
我的根项目build.gradle如下:
buildscript {
repositories {
jcenter()
google()
// maven { url "https://maven.google.com" } does not work as well
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha8'
classpath 'com.google.gms:google-services:3.1.0'
classpath 'io.fabric.tools:gradle:1.23.0'
}
}
Run Code Online (Sandbox Code Playgroud)
相同的代码在Android Studio上成功构建,但在Jenkins上失败
android jenkins android-studio android-gradle-plugin gradle-plugin
@GET("poll/session/{sessionId}/details")
Observable getSessionDetails(@Path("sessionId") String sessionId);
@GET("poll/session/{sessionId}/details")
@Streaming
Observable getSessionDetails(@Path("sessionId") String sessionId);
@Override
public Observable getSessionDetails(String sessionId) {
return sessionAPI.getSessionDetails(sessionId)
.flatMap(responseBody -> events(responseBody.source()));
}
public static Observable<String> events(BufferedSource source) {
return Observable.create(subscriber -> {
try {
while (!source.exhausted()) {
subscriber.onNext(source.readUtf8Line());
}
} catch (IOException e) {
e.printStackTrace();
subscriber.onError(e);
}
subscriber.onCompleted();
});
}
Run Code Online (Sandbox Code Playgroud)
除非完成所有块,否则不会调用events()方法.
但是,大块的流预计会被大块交付,这似乎并没有发生.
我已尝试使用和不使用@Streaming注释到API,但行为是相同的.
我曾经使用Android Retrofit 2 + RxJava:听取无休止的流作为参考来做我的实现