0

I have an application where there is two textfields and and button. Here they are in 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:

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. But if I try to output userDataJSON on click, there is a mistake like this:

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: App screen So what's wrong in my app? Everything seems to be right.

1
  • remove this form String userDataJSON=this.generateJson(this.login.getText().toString(),this.password.getText().toString()) ; Commented Jan 31, 2015 at 17:45

1 Answer 1

1

Have you made all of the proper imports? You are getting a ClassNotFoundException whilst trying to call net.sf.json.JSONObject.

According to the json-lib homepage you must have, at minimum, the following dependencies in your class path:

  • jakarta commons-lang 2.5
  • jakarta commons-beanutils 1.8.0
  • jakarta commons-collections 3.2.1
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6

There is an existing post that discusses this issue further: Java runtime ClassNotFoundException

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.