我不是開發人員。幾周前剛開始學習android。我遇到了java.lang.IllegalStateException:嘗試執行JSONParser時無法執行android:onClick方法
「java.lang.IllegalStateException無法執行android:onClick的方法」 錯誤。我已經閱讀了類似的問題,並嘗試了不同的解決方案,但是仍然無法解決。似乎它正在崩潰,當我嘗試JSONParser分析器=新的JSONParser() - 我想。但我知道'clickme'觸發器,當我點擊Android應用程序上的按鈕。
如果有經驗的人可以幫助我,我將不勝感激。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Thread Policy
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
public void clickme (View view) {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("assets/StockDB.json"));
JSONObject jsonObject = (JSONObject) obj;
JSONArray stockInfo = (JSONArray) jsonObject.get("Watchlist");
for (Object c : stockInfo)
{
JSONObject f = (JSONObject) c;
String m = (String) f.get("Company");
String t = (String) f.get("Ticker");
System.out.println(m);
System.out.println(t);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
logcat的:
03-03 17:02:12.415:d/AndroidRuntime(22035):關閉VM 03-03 17:02:12.425:E/AndroidRuntime(22035):致命EXCEPTION:main 03-03 17:02:12.425:E/AndroidRuntime(22035):進程:com.example.stockiodebug,PID:22035 03-03 17:02:12.425:E/AndroidRuntime(22035):java。 lang.IllegalStateException:無法爲android執行方法:onClick 03-03 17:02:12.425:E/AndroidRuntime(22035):at android.view.View $ DeclaredOnClickListener.onClick(View.java:4740) 03-03 17:02:12.425:E/AndroidRunti我(22035):在android.view.performClick(View.java:5697) 03-03 17:02:12.425:E/AndroidRuntime(22035):在android.widget.TextView.performClick(TextView.java: 10815) 03-03 17:02:12.425:E/AndroidRuntime(22035):at android.view.View $ PerformClick.run(View.java:22526) 03-03 17:02:12.425:E/AndroidRuntime 22035):at android.os.Handler.handleCallback(Handler.java:739) 03-03 17:02:12.425:E/AndroidRuntime(22035):at android.os.Handler.dispatchMessage(Handler.java:95)在Android.os.Looper.loop(Looper.java:158) 03-03 17:02:12.425:E/AndroidRuntime(22035): android.app.ActivityThread.main(ActivityThread.java:7229) 03-03 17:02:12.425:E/AndroidRuntime(22035):at java.lang.reflect.Method.invoke(Native Method) 03-03 17:02:12.425:E/AndroidRuntime(22035):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230) 03-03 17:02:12.425:E/AndroidRuntime(22035):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 03-03 17:02:12.425:E/AndroidRuntime(22035):引起:java.lang.reflect。 InvocationTargetException 03-03 17:02:12.425:E/AndroidRuntime(22035):at java.lang.reflect.Method.invoke(Native Method) 03-03 17:02:12.425:E/AndroidRuntime(22035):at android.view.View $ DeclaredOnClickListener.onClick(View.java:4735) 03-03 17:02:12.425:E/AndroidRuntime(22035):... 10更多 03-03 17:02:12.425:E/AndroidRuntime(22035):導致:java.lang.NoClassDefFoundError:失敗的解決方案:Lorg/json/simple/parser/JSONParser; E/AndroidRuntime(22035):com.example.stockiodebug.MainActivity.clickme(MainActivity.java:33) 03-03 17:02:12.425:E/AndroidRuntime(22035) :... 12更多 03-03 17:02:12.425:E/AndroidRuntime(22035):導致:java.lang.ClassNotFoundException:在路徑中未找到類「org.json.simple.parser.JSONParser」 :DexPathList [[zip文件「/data/app/com.example.stockiodebug-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.stockiodebug-2/lib/arm64,/ vendor/lib64 ,/ system/lib64]] 03-03 17:02:12.425:E/AndroidRuntime(22035):at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 03-03 17:02:12.425:E/AndroidRuntime(22035):在java.lang.ClassLoader.loadClass(ClassLoader。java/511) 03-03 17:02:12.425:E/AndroidRuntime(22035):at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 03-03 17:02:12.425:E/AndroidRuntime 22035):... 13更多 03-03 17:02:12.425:E/AndroidRuntime(22035):Suppressed:java.lang.ClassNotFoundException:org.json.simple.parser.JSONParser 03-03 17:02: 12.425:E/AndroidRuntime(22035):at java.lang.Class.classForName(Native Method) 03-03 17:02:12.425:E/AndroidRuntime(22035):at java.lang.BootClassLoader.findClass(ClassLoader.java :781) 03-03 17:02:12.425:E/AndroidRuntime(22035):at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 03-03 17:02:12.425:E/AndroidRuntime(22035 ):在java.lang.ClassLoader.loadClass(ClassLoader.java:504) 03-03 17:02:12.425:E/AndroidRuntime(220 35):... 14更多 03-03 17:02:12.425:E/AndroidRuntime(22035):引起:java.lang.NoClassDefFoundError:未找到使用引導類加載器的類;沒有堆棧跟蹤可用
轉到項目的「libs」目錄,並確保_org.json.simple.parser.JSONParser_ related _.jar_放置在那裏。當_JVM_在_classpath_中找不到所需的類時會出現這樣的錯誤。 –
我在下面添加了一個答案。如果我向libs文件夾添加.jar的建議解決了您的問題,請接受我的答案。 –