我正在开发一个Android库,我在我的测试项目中添加了我的库,现在我有一个错误,无法完成我的测试:
Could not find method org.json.JSONObject.put, referenced from method com.ldm.JsonBuilder.jsonbuilder
Process: , PID: 31181
java.lang.NoSuchMethodError: org.json.JSONObject.put
at com.ldm.JsonBuilder.jsonbuilder(JsonBuilder.java:70)
at com.ldm.TestConnection.TestNow(TestConnection.java:79)
at ldm.eisworld.it.test.MainActivity.onCreate(MainActivity.java:23)
at android.app.Activity.performCreate(Activity.java:5442)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2393)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)
at android.app.ActivityThread.access$800(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5584)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
这是我的gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/httpcore-4.4.4.jar')
compile files('libs/json.jar')
compile 'org.json:json:20141113'
}
这是我的代码的一部分:
/* Parsing of hash map */
for (Map.Entry<String, ArrayList<String>> tr : rh.entrySet()) {
try {
/* Object that contains URL */
JSONObject TraceUrl = new JSONObject();
/* Object that contains nodes for each URL */
JSONObject TraceNodes = new JSONObject();
TraceUrl.put("url", tr.getKey());
TraceUrl.put("nodes", tr.getValue());
trace.put(TraceUrl);
} catch (JSONException e) {
System.out.println("Exception: " + e.toString());
}
我该怎么解决呢?
3条答案
按热度按时间fhg3lkii1#
您似乎正在导入某种外部json库,该库没有
put()
方法。拥有
put()
的JSONObject是“内置”到Android的,你不需要任何额外的库。这会成功的
okxuctiv2#
*Kotlin
很晚了,但我想这可能会对某人有帮助。我有这个错误
我正在导入正确的类,而不是导入任何其他相关的第三方库。甚至添加了progaurd规则,但没有任何帮助。
然后我替换了
与
cnh2zyt33#
根据文档,传递给
JSONObject.put
的Object
值必须为:... JSONObject、JSONArray、String、Boolean、Integer、Long、Double、NULL或null。不能是NaN或无穷大。
tr.getValue()
的类型为ArrayList<String>
。由于这不是列出的类型之一,因此尝试在运行时失败。