首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android上Scala代码中的HTTP报告“需要HTTP方法注释”

Android上Scala代码中的HTTP报告“需要HTTP方法注释”
EN

Stack Overflow用户
提问于 2014-07-18 17:42:48
回答 2查看 2.5K关注 0票数 1

我遇到了一个问题,Retrofit库正在识别该方法,而不是它的注释。它正在报告上面标题中的错误消息。

(背景:我使用的是SBT和sbt-android-plugin和Retroef1.6.1)

我的代码是这样的:

代码语言:javascript
复制
private trait MyService {
    @GET("/api/test")
    def test(): Observable[Any]
}

object MyService {
    private val restAdapter = new RestAdapter.Builder().setEndpoint("http://somewhere").build()
    val service = restAdapter.create(classOf[MyService])

    service.test().subscribe(/* you get the idea */) // This line throws a RuntimeException with message in title above
}

有一个非常类似的例子分散在GitHub周围,显然来自反应原理课程,例如这里。我只想说,我的设置是一样的。

当我遍历RestMethodInfo.parseMethodAnnotations()时,requestMethod变量确实是空的,requestTypeSIMPLE。如果我将@FormUrlEncoded注释添加到我的测试方法中,requestType仍然被设置为SIMPLE

有什么可能导致这一切的想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-18 20:02:05

原来Proguard是在删除注释。

这个GitHub问题中的建议很有帮助:

-keepattributes *注释* -keep类的改进。**{ *;} -keepclasseswithmembers类*{@-keepclasseswithmembers.*;} -keepattributes签名

这个问题在这个所以贴中也提到了。

票数 5
EN

Stack Overflow用户

发布于 2016-03-08 13:38:19

在改造中:2.0.0库需要使用来自retrofit2的注释:

代码语言:javascript
复制
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;

而不是retrofit

代码语言:javascript
复制
import retrofit.http.Field;
import retrofit.http.FormUrlEncoded;
import retrofit.http.GET;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24830891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档