kotlin Модифицирует Ожидание ошибки объявления участника

#android #kotlin #retrofit #retrofit2

Вопрос:

Я собираюсь попробовать доработать ПОСТ с помощью API перевода NAVER Papago. В 30-й строке файла MainActivity.kt возникает ошибка, ожидающая описания элемента, ожидаемого имени. Я искал с именем ошибки, но я не могу ее решить, поэтому я задаю этот вопрос.

Часть, в которой возникает ошибка, выглядит следующим образом.

 callPostTransferPapago.enqueue(object:
 

Это основная активность.кт.

 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")
            }
        })
    }
}
 

Комментарии:

1. можете ли вы поделиться ответом в формате json ?

2. Это пример ответа. Добавлено в нижней части вопроса.

3. Это то, чего ты хочешь?

4. Можете ли вы поделиться также logcat ?

5. Проблема решена! Начиная с val CLIENT_ID, приведенный ниже код должен быть включен в onCreate() {}. Спасибо, что нашли время ответить на мой вопрос. Добавлен разрешенный код.

Ответ №1:

Вам нужно поместить свой callPostTransferPapago.enqueue(...) вызов в какой-либо метод жизненного цикла действия, например. onCreate() .

Комментарии:

1. Проблема решена! Начиная с val CLIENT_ID, приведенный ниже код должен быть включен в onCreate() {}. Огромное спасибо. Добавлен разрешенный код.