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
相关产品推荐
相关产品推荐

