Android Kotlin-上载带有Volley错误的图像:意外覆盖:以下声明具有相同的JVM签名

时间:2018-09-28 18:14:31

标签: android kotlin android-volley

fun UploadToServer(klein: Bitmap, mitte: Bitmap){

        val baos = ByteArrayOutputStream()
        klein.compress(Bitmap.CompressFormat.JPEG, 90, baos)
        val imageBytes = baos.toByteArray()
        val imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT)


        val request = object:StringRequest(Request.Method.POST, "http://www.xxxx.com/uploadimage.php", object: Response.Listener<String> {
            override fun onResponse(response: String) {
                // Display the first 500 characters of the response string.
                Log.d("letsSee", "Success! JSON: " + response)
            }
        }, object: Response.ErrorListener {
            override fun onErrorResponse(volleyError:VolleyError) {
                Toast.makeText(this@UploadImage, "Some error occurred -> " + volleyError, Toast.LENGTH_LONG).show()
            }
        }) {
            protected val params:Map<String, String>

                @Throws(AuthFailureError::class)
                get() {
                    val parameters = HashMap<String, String>()
                    parameters.put("klein", imageString)
                    return parameters
                }

        }
        val rQueue = Volley.newRequestQueue(this@UploadImage)
        rQueue.add(request)

    }

enter image description here

这是什么,我在这里需要做什么?即使Java令人恶心,我也开始后悔使用Kotlin。预先感谢

2 个答案:

答案 0 :(得分:1)

改为使用此:

override fun getParams(): MutableMap<String, String> {
    val parameters = HashMap<String, String>()
    parameters.put("klein", imageString)
    return parameters
}

科特林有两种形式的Map对象:Map和MutableMap。 MutableMap等于Java的Map,而Map是Kotlin自己的东西。

答案 1 :(得分:0)

在val关键字后将template<class T, class... Assertions> void my_function(); template <class list_t, class list_t::value_type> void my_function() { } 更改为my_function() kotlin自动为变量创建get方法,并且您声明了params,因此getter方法将为{{ 1}}与预定义方法冲突。