【问题标题】:kotlin Retrofit Expecting member declaration Errorkotlin Retrofit Expecting member declaration Error
【发布时间】:2021-09-21 12:06:49
【问题描述】:

我将尝试使用 NAVER Papago 翻译 API 进行 Retrofit POST。 MainActivity.kt文件第30行出现Expecting member description, Name expected的错误。 我用错误名称搜索,但无法解决,所以我问这个问题。

出现错误的部分如下。

callPostTransferPapago.enqueue(object:

这是 MainActivity.kt。

package com.example.papagoapi

import android.content.ContentValues.TAG
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

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

    val CLIENT_ID = "clientId"
    val CLIENT_SECRET = "clientSecret"
    val BASE_URL_NAVER_API = "https://openapi.naver.com/"

    val retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL_NAVER_API)
        .addConverterFactory(GsonConverterFactory.create())
        .build()
    val api = retrofit.create(NaverAPI::class.java)
    val callPostTransferPapago = api.transferPapago(CLIENT_ID, CLIENT_SECRET, "ko", "en", "안녕하세요. 이것은 테스트입니다.")

    callPostTransferPapago.enqueue(object: Callback<ResultTransferPapago>{
        override fun onResponse(
            call: Call<ResultTransferPapago>,
            response: Response<ResultTransferPapago>
        ) {
            Log.d(TAG, "성공: ${response.raw()}")
        }

        override fun onFailure(call: Call<ResultTransferPapago>, t: Throwable) {
            Log.d(TAG, "실패: $t")
        }
    })
}

添加了解析代码。

package com.example.papagoapi

import android.content.ContentValues.TAG
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

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

        val CLIENT_ID = "id"
        val CLIENT_SECRET = "secret"
        val BASE_URL_NAVER_API = "https://openapi.naver.com/"

        val retrofit = Retrofit.Builder()
            .baseUrl(BASE_URL_NAVER_API)
            .addConverterFactory(GsonConverterFactory.create())
            .build()
        val api = retrofit.create(NaverAPI::class.java)
        val callPostTransferPapago = api.transferPapago(CLIENT_ID, CLIENT_SECRET, "ko", "en", "안녕하세요. 이것은 테스트입니다.")

        callPostTransferPapago.enqueue(object: Callback<ResultTransferPapago>{
            override fun onResponse(
                call: Call<ResultTransferPapago>,
                response: Response<ResultTransferPapago>
            ) {
                Log.d(TAG, "성공: ${response.raw()}")
            }

            override fun onFailure(call: Call<ResultTransferPapago>, t: Throwable) {
                Log.d(TAG, "실패: $t")
            }
        })
    }
}

【问题讨论】:

  • 可以分享一下json格式的回复吗?
  • 这是一个响应示例。在问题底部添加。
  • 这是你想要的吗?
  • 可以分享一下logcat吗?
  • 问题解决了!从 val CLIENT_ID 开始,它下面的代码必须包含在 onCreate() {} 中。感谢您花时间回答我的问题。添加了解析后的代码。

标签: android kotlin retrofit retrofit2


【解决方案1】:

您需要将您的 callPostTransferPapago.enqueue(...) 调用放到一些活动生命周期方法中,例如。 onCreate().

【讨论】:

  • 问题解决了!从 val CLIENT_ID 开始,它下面的代码必须包含在 onCreate() {} 中。太感谢了。添加了解析后的代码。
猜你喜欢
  • 1970-01-01
  • 2021-11-26
  • 2022-12-27
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多