【问题标题】:what is the problem withe my Retrofit Code in my Android App?我的 Android 应用程序中的改造代码有什么问题?
【发布时间】:2020-07-20 05:39:46
【问题描述】:

大家好,我想知道我的代码有什么问题 我正在尝试使用改造来运行这个 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)

请问我的代码有什么问题

【问题讨论】:

  • 能否提供异常堆栈跟踪(来自控制台/logcat)?
  • 在 com.mammoth.retrofitkotlin.MainActivity.onCreate(MainActivity.kt:18)
  • 将整个堆栈跟踪添加到问题中。

标签: android rest api kotlin retrofit


【解决方案1】:

According to documentation你必须在build.gradle中添加Java 8兼容性:

android {

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

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

还要记住 Manifest 中的 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"

【讨论】:

猜你喜欢
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多