大家好我想知道我的代码有什么问题我正在尝试使用改造运行这个 Kotlin-Android 应用程序,但它崩溃了,应用程序没有启动

package com.mammoth.retrofitkotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*
import retrofit2.*
import retrofit2.converter.gson.GsonConverterFactory

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var url = "https://jsonplaceholder.typicode.com/"
        var retrofit = Retrofit.Builder()
            .baseUrl(url)
            .addConverterFactory(GsonConverterFactory.create())
            .build()
        var API: API = retrofit.create(API::class.java)
        var call = API.calldata()
        var item = call.enqueue(object : Callback<model> {
            override fun onFailure(call: Call<model>, t: Throwable) {

            }

            override fun onResponse(call: Call<model>, response: Response<model>) {
                var xx = response.body()!!.title
                txtView.text = xx
            }


        })

    }

}

我创建了这个界面

package com.mammoth.retrofitkotlin

import retrofit2.Call
import retrofit2.http.GET


interface API {

     @GET("posts/1")

     fun calldata() : Call<model>

}

这是模型类

package com.mammoth.retrofitkotlin

data class model (var userId : String,var id : String,var title : String,var body : String)

请问我的代码有什么问题

#1楼 票数:0 已采纳

根据文档,您必须在build.gradle添加 Java 8 兼容性:

android {

    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

还请记住清单中的INTERNET权限:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <!--  Add this one:  -->
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"

  ask by Ahmad Al-Maghrabi translate from so

未解决问题?本站智能推荐:

2回复

如何让我的改造调用出现在 recyclerview 中?

我在使来自 rest api 调用的数据出现在我的 recyclerview 上时遇到问题。 build 和 logcat 没有错误,它可以在模拟器中正常打开而不会崩溃,并且可以显示其他功能。 只是这部分 recyclerview 没有显示来自改造调用的任何数据。 我正在尝试许多教程/解决方案,但
1回复

使用 Retrofit enqueue 调用获取问题

为 kotlin android 入队收到此错误,并显示未解决的参考:入队 我的代码 这是新闻活动 这是新闻适配器 这是 Api 客户端 需要帮助 我不想像往常一样得到解决方案,它给我一个 enqueue 错误。
1回复

Android Retrofit 按用户更改动态 BaseUrl

我想通过让用户选择来使用spinner更改baseurl 。 因为我使用的api也是baseurls分配给不同的服务器。 样本 : euw1.site.com na1.site.com tr1.site.com 我想使用spinner向用户进行此服务器选择。 应用示例 由于
2回复

如何在Android中处理改造响应Kotlin?

你们所有人 我正在使用改造从api调用中进行示例Android Kotlin项目。 我调用了api并显示响应logcat。 但是,它不处理从服务器发送的用户ID和数据。 因此,如果您知道Guys与您分享最好的经验。 这是模特班 } 这是Api称为改造Kotlin的代
1回复

如何使用 Kotlin Android 在 Retrofit 中传递 body?

我正在尝试使用 Retrofit Kotlin Android 从本地服务器 API 获取数据。 服务器有一个身体 { "uid":1 } 如何通过改造将此 uid 传递给 API 调用?
2回复

Android Retrofit入队方法未返回值

Enqueue方法在后台线程上运行,但是如何在enqueue方法中返回列表。 上面的代码返回空列表。 提前致谢
1回复

在从Android调用Post请求时,Retrofit提供空响应

当前反应 但是我传递的网址是 作为字符串传递到在以下函数接收的api服务的“ subscription / 2be110” 反斜杠如何更改为“%2F”格式? 有解决此问题的解决方案吗? Nb:使用Retrofit2
1回复

Retrofit2 调用 Android 谷歌地图 Api 不起作用

我在 android 项目中使用改造,以便能够调用谷歌地图 api 并获得地点的自动完成建议。 我正在为调用传递一个地址(字符串参数类型)。 RetrofitCaller 类具有如下所示的 start 方法: PlacesAutoCompleteApi 具有带有 loadPrediction