You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin文件编译报错:Expecting a class body,求排查解决

问题修复:Expecting a class body 错误(OrderLog.kt 第36行)

错误根源分析

你怀疑的代码行确实存在多处语法问题:

  • Request.Method.Post 应为大写的 Request.Method.POST,且 StringRequest 构造参数顺序错误,正确顺序是请求方法、URL、成功监听、失败监听
  • 匿名类声明后多了分号,监听逻辑的写法不符合Volley StringRequest 的构造规范
  • 存在拼写错误:Listner → Listener,LENGTH_SHORTGTH → LENGTH_SHORT,泛型类型 string → String
  • 代码块的括号、大括号匹配混乱

修复后的完整代码

package com.example.forpfl2

import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.android.volley.Response
import com.android.volley.toolbox.StringRequest
import com.android.volley.toolbox.Volley
import java.util.HashMap

class OrderLog : AppCompatActivity() {

    lateinit var editTextNumberSigned: EditText
    lateinit var rfdbtn: Button

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

        editTextNumberSigned = findViewById(R.id.editTextNumberSigned)
        rfdbtn = findViewById(R.id.rfdbtn)

        rfdbtn.setOnClickListener {
            if (editTextNumberSigned.text.toString().isEmpty()) {
                Toast.makeText(this@OrderLog, "Enter Job Number", Toast.LENGTH_SHORT).show()
            } else {
                val url = "https://script.google.com/macros/s/AKfycbyx_FUwzu05qmsfL7jsQbYJwk37VNphQq5PcN7_G3e73m0aPU38MX4_upms_KKuLv1dlA/exec"

                val stringRequest = object : StringRequest(
                    Request.Method.POST,
                    url,
                    Response.Listener { response ->
                        Toast.makeText(this@OrderLog, response, Toast.LENGTH_SHORT).show()
                    },
                    Response.ErrorListener { error ->
                        Toast.makeText(this@OrderLog, error.message ?: "请求失败", Toast.LENGTH_SHORT).show()
                    }
                ) {
                    override fun getParams(): MutableMap<String, String> {
                        val params = HashMap<String, String>()
                        params["JobNumber"] = editTextNumberSigned.text.toString()
                        return params
                    }
                }

                val queue = Volley.newRequestQueue(this@OrderLog)
                queue.add(stringRequest)
            }
        }
    }
}

关键修复点说明

  • 修正 StringRequest 构造参数,将请求方法、URL、监听逻辑正确传入
  • 修复匿名类语法结构,去掉多余分号,确保大括号包裹重写的getParams方法
  • 修正所有拼写错误,规范Kotlin泛型类型写法(首字母大写)
  • 调整代码缩进,确保括号、大括号匹配正确

内容的提问来源于stack exchange,提问作者Junaid Raees

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:17:33