我创建了简单的Base64Images辅助类,其中包含此主体:
companion object{
val ABSTRACT_COLORS = "[image encoded in base64]"
}
Run Code Online (Sandbox Code Playgroud)
ABSTRACT_COLORS实际上是一个有 570438 个字符的字符串。
在编译过程中我得到:
org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Failed to generate property ABSTRACT_COLORS
...
...
The root cause was thrown at: ByteVector.java:213 at org.jetbrains.kotlin.codegen.MemberCodegen.genFunctionOrProperty(MemberCodegen.java:205)
Caused by: java.lang.IllegalArgumentException
Run Code Online (Sandbox Code Playgroud)
我认为我可以在字符串中存储2147483647 (2 31 - 1) 个字符。
这是为什么?
我在下面发布了这张图片。
您可以使用此工具生成base64。
提示:编辑此类或编译项目会冻结 Android Studio。
我会使用一些轻量级编辑器来编辑并使用终端来编译它。
所以我试图从.json我的Android项目中的文件中读取数据:
val file = context.assets.open("myfile.json").bufferedReader().readText()
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,并成功将我的.json文件作为一个文件输出String。
但是我想知道到底是什么bufferedReader(),为什么.readText()不能直接在打开的.json文件上调用它。
PS:readText()返回String。然而:
val json2: JSONObject = JSONObject("mystring") 返回:
Caused by: org.json.JSONException: Value mystring of type java.lang.String cannot be converted to JSONObject
Run Code Online (Sandbox Code Playgroud)
这有什么意义?
我正在使用kotlin开发应用程序.现在我想从服务器获取JSON数据.
在java中我实现了Asyntask以及Rxjava,用于从Url读取JSON.我也在谷歌搜索,但我无法得到我的要求的正确细节.
如何使用kotlin从Url读取JSON?