Android Studio で開発した小さな Android アプリで問題が発生しています。私がやりたいのは、ボタン クリック ルーチンで org.json.XML を使用して xml 文字列から JSON を取得することだけです。しかし残念ながら、アプリはエラーなしでデバッグ モードでクラッシュします。アプリを正常に実行すると、次のエラー メッセージが生成されます。
--------- beginning of crash
os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) で ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 原因: java.lang.NoSuchMethodError: No static method stringToValue(Ljava/lang/String) ;)Ljava/言語/オブジェクト; クラス Lorg/json/JSONObject 内。またはそのスーパークラス (「org.json.JSONObject」の宣言は /system/framework/core-libart.jar に表示されます) org.json.XML.parse(XML.java:257) at org.json.XML.parse (XML.java:263) org.json.XML.toJSONObject(XML.java: com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) での invoke(ネイティブ メソッド) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) での呼び出し: 中断すべてのスレッドにかかった時間: 8.734ms I/プロセス: シグナルを送信しています。PID: 3068 SIG: 9 アプリケーションが終了しました。
onButtonClick コード:
public void onButtonClick(View view)
{
String XML_TESTSTRING = "<item><value>test</value></item>";
JSONObject jsonObject = null;
try
{
jsonObject = XML.toJSONObject(XML_TESTSTRING);//here crash
}
catch (JSONException e)
{
e.printStackTrace();
}
}
プロジェクトに含まれている json ライブラリは次のとおりです。https://mvnrepository.com/artifact/org.json/json/1.5-20090211
アプリで libs ディレクトリを作成し、jar をそこにコピーして、[ライブラリとして追加] を右クリックしました。build.gradle の依存関係の部分は次のようになります。
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.android.gms:play-services-appindexing:8.1.0'
compile files('libs/json-1.5-20090211.jar')
}
私の最善の推測では、問題は、org.json を含む Android API と、ダウンロードして含めたものに関するものですが、続行する方法についての手がかりがありません。助言がありますか?