简体   繁体   English

单击按钮上的Java android应用程序致命异常

[英]Java android application FATAL EXCEPTION on click on button

I have an application where there is two textfields and and button. 我有一个应用程序,其中有两个文本字段和和按钮。 Here they are in xml: 它们在xml中:

<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="phone"
        android:ems="10"
        android:id="@+id/editText" android:layout_gravity="center_horizontal" android:phoneNumber="true"
        android:hint="Номер телефона"/>
<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:ems="10"
        android:id="@+id/editText2" android:password="true" android:hint="Пароль"/>
<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Войти"
        android:onClick="sendMessage"
        android:id="@+id/button" android:layout_gravity="center_horizontal"/>

Here is also sendMessage and generateJSON functions: 这也是sendMessage和generateJSON函数:

public void sendMessage(View view)
{
    Intent intent = new Intent(TestActivity.this, RegActivity.class);
    startActivity(intent);
    String userDataJSON=this.generateJson(this.login.getText().toString(),this.password.getText().toString()) ;
    System.out.println(userDataJSON);
}

private String generateJson(String login, String password){
    JSONObject j = new JSONObject();
    j.put("login",login);
    j.put("password",password);
    String res=j.toString();
    return res;
}

If I just output this.login.getText().toString() and this.password.getText().toString() it outputs fine. 如果我只输出this.login.getText().toString()this.password.getText().toString()它将输出正常。 But if I try to output userDataJSON on click, there is a mistake like this: 但是,如果我尝试在单击时输出userDataJSON,则会出现如下错误:

01-31 22:19:16.137    2043-2043/com.example.test E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.test, PID: 2043
    java.lang.IllegalStateException: Could not execute method of the activity
            at android.view.View$1.onClick(View.java:4007)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at android.view.View$1.onClick(View.java:4002)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lnet/sf/json/JSONObject;
            at com.example.test.TestActivity.generateJson(TestActivity.java:30)
            at com.example.test.TestActivity.sendMessage(TestActivity.java:25)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at android.view.View$1.onClick(View.java:4002)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "net.sf.json.JSONObject" on path: DexPathList[[zip file "/data/app/com.example.test-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
            at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
            at com.example.test.TestActivity.generateJson(TestActivity.java:30)
            at com.example.test.TestActivity.sendMessage(TestActivity.java:25)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at android.view.View$1.onClick(View.java:4002)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
    Suppressed: java.lang.ClassNotFoundException: net.sf.json.JSONObject
            at java.lang.Class.classForName(Native Method)
            at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
            at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
            ... 16 more
     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

What's the problem? 有什么问题? Also in app there is such mistake: 同样在应用程序中有这样的错误: 应用画面 So what's wrong in my app? 那么我的应用程序出了什么问题? Everything seems to be right. 一切似乎都是正确的。

Have you made all of the proper imports? 您是否已完成所有适当的进口? You are getting a ClassNotFoundException whilst trying to call net.sf.json.JSONObject . 您在尝试调用net.sf.json.JSONObject收到ClassNotFoundException

According to the json-lib homepage you must have, at minimum, the following dependencies in your class path: 根据json-lib主页,您的类路径中至少必须具有以下依赖项:

  • jakarta commons-lang 2.5 雅加达公共语言2.5
  • jakarta commons-beanutils 1.8.0 雅加达Commons-Beanutils 1.8.0
  • jakarta commons-collections 3.2.1 雅加达公共图书馆3.2.1
  • jakarta commons-logging 1.1.1 雅加达Commons-Logging 1.1.1
  • ezmorph 1.0.6 ezmorph 1.0.6

There is an existing post that discusses this issue further: Java runtime ClassNotFoundException 有一篇现有文章进一步讨论了此问题: Java运行时ClassNotFoundException

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM