Tag: 改造

无法使用kotlinx.serialization将Json解析为数据类

在Android项目中,我试图使用kotlinx.serialization和Retrofit从远程端点解析Json响应。 我在使用Jake Warthon的https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter来设置转换器时设置改造实例 Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(stringBased(contentType, ::parse, ::stringify)) .addCallAdapterFactory(CoroutineCallAdapterFactory()) .build() 我有以下模型注解@Serializable,我想用来解析Json响应 import kotlinx.serialization.Serializable @Serializable data class Response(val groups: List<GroupsResponse>) 请注意,Response和嵌套的GroupsResponse都定义了一个通用types。 我一直在浏览文档,但是我一直无法理解generics和kotlinx.serialization是如何一起玩的,尽管它提到它支持generics,并且您应该使用生成的序列化方法访问那些模型的序列化程序 。 我已经建立了项目使用正确的插件按照kotlinx.serialization和Jake的库的文档,但问题是,该项目甚至不编译,因为我正在得到以下types的错误,当构建过程执行kaptDebugKotlin gradle任务 e: /Users/nico/Dev/git/edreams/workshops/K-Places/data/build/tmp/kapt3/stubs/debug/com/edreams/android/workshops/kotlin/data/venues/remote/response/Response.java:75: error: non-static type variable T cannot be referenced from a static context public static final class $serializer implements kotlinx.serialization.KSerializer<com.edreams.android.workshops.kotlin.data.venues.remote.response.Response> { e: /Users/nico/Dev/git/edreams/workshops/K-Places/data/build/tmp/kapt3/stubs/debug/com/edreams/android/workshops/kotlin/data/venues/remote/response/GroupsResponse.java:109: error: cannot find symbol kotlinx.serialization.KSerializer typeSerial0) { […]

如何处理Android的改造反应Kotlin?

你们全部 我正在使用改进的API调用示例Android Kotlin项目。 我调用API并显示响应logcat。 但它不处理来自服务器的用户标识和数据。 所以,如果你知道的人分享你最好的经验。 val params = HashMap() params[“api_key”] = “api_key_value” params[“username”] = “abcd” params[“password”] = “1234” doApiLogin.getLogin(params).enqueue(object : Callback { override fun onResponse(call: Call?, response: Response?) { //To change body of created functions use File | Settings | File Templates. if (response != null && response.isSuccessful) { val getLoginAndRegisterResp = response.body() if […]

麻烦“For-Loop范围必须有一个’iterator()’方法”和JSON问题

我正在教自己Kotlin和Android开发。 所以,我相信我的问题大部分是缺乏知识,但是我已经挂了这一两天了。 我认为我的问题部分是我的JSON查询,大部分是我的菜鸟。 在我下面的for循环中,我从IDE中得到以下错误:“For-Loop范围必须有一个”iterator()方法“。 这是关于’cycloneList’in:for(stormInfo in cycloneList) 我已经链接了我使用的“虚拟”JSON数据可以在这里find: https : //api.myjson.com/bins/19uurt在这个问题上保存一些空间。 问题代码 `var cycloneList = response?.body()?.currenthurricane?.stormInfo?.get(0) if (cycloneList != null) { for (stormInfo in cycloneList) { <<–Problem val newCyclone = "Name: ${cycloneList.stormName}" cycloneStrings.add(newCyclone) } }` 完整的代码 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //creates a new CycloneRetriever object from CycloneHelp.kt […]

如何从kotlin的匿名类实现中更改全局variables

fun loadTweets(uid: Int) : Observable<ArrayList> { var tweets: ArrayList = ArrayList() val builder: Retrofit.Builder = Retrofit.Builder() .baseUrl(NetworkContract.SERVER_URL) .addConverterFactory(GsonConverterFactory.create()) val retrofit: Retrofit = builder.build() val userService: UserService = retrofit.create(UserService::class.java) val call: Call<List> = userService.loadTweets(uid) call.enqueue(object: Callback<List>{ override fun onResponse(call: Call<List>?, response: Response<List>?) { if(response!!.isSuccessful){ val tweetsTemp: ArrayList = ArrayList() tweetsTemp.add(Tweet(“Test!”, “Tom”)) mTweets = tweetsTemp } } […]

Android网络库比较:OkHTTP,Retrofit和Volley

从iOS开发人员学习Android的两个部分的问题,工作在一个Android项目,将从JSON到图像到音频和video的流式下载的各种请求: 在iOS上,我广泛使用了AFNetworking项目。 有一个相当于Android的库吗? 我已经阅读了Square的OkHTTP和Retrofit ,以及Volley,但还没有与他们合作的经验。 我希望有人可以提供一些最佳用例的具体例子。 从我读到的,似乎OkHTTP是三个中最强大的,可以处理这个项目(上面提到)的要求。

android – 使用Kotlin调用void

我遇到了Retrofit 2的一个问题。我想使用Call进行调用,而不处理响应主体,但它不适用于Kotlin。 我需要用什么来代替Void ?