我试图在一个链接文件夹中的文件中创建一个JSONArray到一个Android项目,并且eclipse突然(之前没有这样做)给我错误: 调用需要API级别19(当前最小值为14):new org.json.JSONArray
发生的代码如下:
String[] s = (save_val.trim().equals(""))?new String[]{}:save_val.split("\n");
JSONObject o = null;
if (!Arrays.equals(s, save_names)){
new JSONArray(s); // this is where the error is shown
编辑:解决方法实际上该方法在API 19之前尚未引入,但如果您使用(如我的情况)字符串数组或其他promitives,您可以简单地执行:
JSONArray s_values = new JSONArray();
for (int i = 0; i < s.length; i++){
s_values.put(yourarray[i]);
}
这不应该慢任何
答案 0 :(得分:7)
在 API级别19 之前,似乎没有引入构造函数JSONArray(Object array)
。
http://developer.android.com/reference/org/json/JSONArray.html#JSONArray(java.lang.Object)
您可以将manifest
中的min API 版本更改为19或
您可以将Object array
转换为Collection array
ArrayList
,并使用{strong> API 1 中提供的JSONArray
的Collection数组构造函数。
祝你好运!
答案 1 :(得分:0)
您正在构建带有字符串数组的JSONArray,根据the documentation,这些字符串仅在API级别19或更高级别中可用。您需要使用替代构造函数或将清单中的最小API级别更改为19以使构造函数可用。
答案 2 :(得分:0)
您可以通过提供集合来使用替代构造函数。这将通过复制集合中给出的所有值来创建JSONArray。
JSONArray arr = new JSONArray(collection);