【发布时间】:2015-10-13 08:10:21
【问题描述】:
我的项目有两个项目:main project 和 library project。
main project 依赖 library project。
现在我想同时使用kotlin。我已将我的 common rx extension code 添加到 library project:
fun String.rxRequest(@NotNull builder: (Request.Builder) -> Unit): Observable<Response> = Observable.create<Response> {
var mBuilder: Request.Builder = Request.Builder().url(this)
builder.invoke(mBuilder);
it.onNext(HttpClient.create().newCall(mBuilder.build()).execute())
it.onCompleted()
}.subscribeOn(Schedulers.from(THREAD_POOL_NET));
然后我在我的main project 中调用这个函数:
"http://www.xxx.xxx".rxRequest {
val requestBody = FormEncodingBuilder().add("code", code).build()
it.post(requestBody)
.header("XRDid", appInfo.deviceId)
}
构建失败:
LoginPresenter.kt: Unresolved reference: rxRequest
library project构建成功,构建文件夹中生成了kotlin .class。
但是main project 构建失败,构建文件夹中没有 kotlin .class 文件。
【问题讨论】:
-
你的主项目中是否导入了 rxRequest 函数?
-
@yole 是的,我在
main project中导入了rxRequest函数。当我将reRequest函数移动到我的main project时,它就可以工作了。 -
@juancho 的回答有帮助吗?
标签: android rx-java kotlin kotlin-android-extensions kotlin-extension