• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps How can i resolve NoSuchMethodError ?

bhtfjthfyhr

Lurker
Environment
Host OS: Windows 7 (32 bit)
Android SDK Tools: 24.4.1
Android SDK Platform tools: 23.0.1
Android SDK Build-Tools: 23.0.1
Package: Android 6.0 (API 23)
Eclipse Java EE IDE for Web Developers : Mars.1 Release (4.5.1); Build id: 20150924-1200
Platform targeted by my project: Android 6.0 (API Level 23)
Version of the platform running in the emulator: Android 6.0 (API Level 23)
Emulator device : Nexus 7
CPU device : ARM
RAM emulator : 768

Steps reproduced

1. Open Eclipse
2. Eclipse > Run project

Expected results

Connection to MySQL DB

Results

Myapp is running. At finish receive message on emulator : Unfortunaly, myapp stopped

Logcat

> 12-10 20:07:01.247: E/AndroidRuntime(1211): FATAL EXCEPTION: AsyncTask #1
12-10 20:07:01.247: E/AndroidRuntime(1211): Process: com.myapp, PID: 1211
12-10 20:07:01.247: E/AndroidRuntime(1211): java.lang.RuntimeException: An error occurred while executing doInBackground()
12-10 20:07:01.247: E/AndroidRuntime(1211): at android.os.AsyncTask$3.done(AsyncTask.java:309)
12-10 20:07:01.247: E/AndroidRuntime(1211): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
12-10 20:07:01.247: E/AndroidRuntime(1211): at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
12-10 20:07:01.247: E/AndroidRuntime(1211): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
12-10 20:07:01.247: E/AndroidRuntime(1211): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
12-10 20:07:01.247: E/AndroidRuntime(1211): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
12-10 20:07:01.247: E/AndroidRuntime(1211): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
12-10 20:07:01.247: E/AndroidRuntime(1211): at java.lang.Thread.run(Thread.java:818)
12-10 20:07:01.247: E/AndroidRuntime(1211): Caused by: java.lang.NoSuchMethodError: No virtual method execute(Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/client/methods/CloseableHttpResponse; in class Lorg/apache/http/impl/client/DefaultHttpClient; or its super classes (declaration of 'org.apache.http.impl.client.DefaultHttpClient' appears in /system/framework/org.apache.http.legacy.boot.jar)
12-10 20:07:01.247: E/AndroidRuntime(1211): at library.JSONParser.getJSONFromUrl(JSONParser.java:109)
12-10 20:07:01.247: E/AndroidRuntime(1211): at library.UserFunctions.loginUser(UserFunctions.java:29)
12-10 20:07:01.247: E/AndroidRuntime(1211): at com.myapp.Main$Login.doInBackground(Main.java:168)
12-10 20:07:01.247: E/AndroidRuntime(1211): at com.myapp.Main$Login.doInBackground(Main.java:1)
12-10 20:07:01.247: E/AndroidRuntime(1211): at android.os.AsyncTask$2.call(AsyncTask.java:295)
12-10 20:07:01.247: E/AndroidRuntime(1211): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-10 20:07:01.247: E/AndroidRuntime(1211): ... 4 more
12-10 20:07:07.789: E/WindowManager(1211): android.view.WindowLeaked: Activity com.myapp.Main has leaked window com.android.internal.policy.PhoneWindow$DecorView{4c8d81a V.E...... R.....I. 0,0-374,326} that was originally added here
12-10 20:07:07.789: E/WindowManager(1211): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:368)
12-10 20:07:07.789: E/WindowManager(1211): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:299)
12-10 20:07:07.789: E/WindowManager(1211): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
12-10 20:07:07.789: E/WindowManager(1211): at android.app.Dialog.show(Dialog.java:319)
12-10 20:07:07.789: E/WindowManager(1211): at com.myapp.Main.login(Main.java:147)
12-10 20:07:07.789: E/WindowManager(1211): at com.myapp.Main$1.onClick(Main.java:63)
12-10 20:07:07.789: E/WindowManager(1211): at android.view.View.performClick(View.java:5198)
12-10 20:07:07.789: E/WindowManager(1211): at android.view.View$PerformClick.run(View.java:21147)
12-10 20:07:07.789: E/WindowManager(1211): at android.os.Handler.handleCallback(Handler.java:739)
12-10 20:07:07.789: E/WindowManager(1211): at android.os.Handler.dispatchMessage(Handler.java:95)
12-10 20:07:07.789: E/WindowManager(1211): at android.os.Looper.loop(Looper.java:148)
12-10 20:07:07.789: E/WindowManager(1211): at android.app.ActivityThread.main(ActivityThread.java:5417)
12-10 20:07:07.789: E/WindowManager(1211): at java.lang.reflect.Method.invoke(Native Method)
12-10 20:07:07.789: E/WindowManager(1211): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
12-10 20:07:07.789: E/WindowManager(1211): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
12-10 20:07:10.040: E/WindowManager(1211): android.view.WindowLeaked: Activity com.myapp.Main has leaked window com.android.internal.policy.PhoneWindow$DecorView{9781f4b V.E...... R.....I. 0,0-180,114} that was originally added here
12-10 20:07:10.040: E/WindowManager(1211): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:368)
12-10 20:07:10.040: E/WindowManager(1211): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:299)
12-10 20:07:10.040: E/WindowManager(1211): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
12-10 20:07:10.040: E/WindowManager(1211): at android.app.Dialog.show(Dialog.java:319)
12-10 20:07:10.040: E/WindowManager(1211): at com.myapp.Main$Login.onPreExecute(Main.java:163)
12-10 20:07:10.040: E/WindowManager(1211): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:604)
12-10 20:07:10.040: E/WindowManager(1211): at android.os.AsyncTask.execute(AsyncTask.java:551)
12-10 20:07:10.040: E/WindowManager(1211): at com.myapp.Main$6.onClick(Main.java:144)
12-10 20:07:10.040: E/WindowManager(1211): at android.view.View.performClick(View.java:5198)
12-10 20:07:10.040: E/WindowManager(1211): at android.view.View$PerformClick.run(View.java:21147)
12-10 20:07:10.040: E/WindowManager(1211): at android.os.Handler.handleCallback(Handler.java:739)
12-10 20:07:10.040: E/WindowManager(1211): at android.os.Handler.dispatchMessage(Handler.java:95)
12-10 20:07:10.040: E/WindowManager(1211): at android.os.Looper.loop(Looper.java:148)
12-10 20:07:10.040: E/WindowManager(1211): at android.app.ActivityThread.main(ActivityThread.java:5417)
12-10 20:07:10.040: E/WindowManager(1211): at java.lang.reflect.Method.invoke(Native Method)
12-10 20:07:10.040: E/WindowManager(1211): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
12-10 20:07:10.040: E/WindowManager(1211): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Main.java
Java:
package com.myapp;


import library.DatabaseHandler;

import library.UserFunctions;


import org.json.JSONException;

import org.json.JSONObject;


import android.app.Activity;

import android.app.Dialog;

import android.app.ProgressDialog;

import android.content.Context;

import android.content.Intent;

import android.content.pm.ActivityInfo;

import android.database.sqlite.SQLiteDatabase;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.os.AsyncTask;

import android.os.Bundle;

import android.text.method.LinkMovementMethod;

import android.view.View;

import android.view.Window;

import android.view.inputmethod.InputMethodManager;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;


public class Main extends Activity {

    private Dialog d = null;

    Button login, demo, about, bRegister;

    TextView loginErrorMsg;

    EditText etName, etPassword;

    private static final String TAG_SUCCESS = "success";

    private static final String TAG_NAME = "name";

    private static final String TAG_FULLNAME = "fullname";

    private static final String TAG_EMAIL = "email";

    private static final String TAG_PHONE = "phone";

    private static final String TAG_DATE = "date";

    private static final String TAG_SSID_CONNECT = "ssid_connect";

    private static final String TAG_SSID = "ssid";

    private static final String TAG_USER_UID = "uid";

    SQLiteDatabase sampleDB = null;

    String username = "", password = "";


    [USER=1021285]@override[/USER]

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        UserFunctions userFunction = new UserFunctions();

        boolean yes = userFunction.isUserLoggedIn(getApplicationContext());

        if (!yes) {

            if (!isNetworkAvailable()) {

                network_error(getResources().getString(R.string.network_error));

            }

            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

            setContentView(R.layout.main);

            login = (Button) findViewById(R.id.bLogin);

            login.setOnClickListener(new View.OnClickListener() {


                [USER=1021285]@override[/USER]

                public void onClick(View v) {

                    // TODO Auto-generated method stub

                    login();

                }

            });

            bRegister = (Button) findViewById(R.id.bRegister);

            bRegister.setOnClickListener(new View.OnClickListener() {


                public void onClick(View view) {

                    Intent i = new Intent(getApplicationContext(),

                            Register.class);

                    startActivity(i);

                }

            });

            demo = (Button) findViewById(R.id.bDemo);

            demo.setOnClickListener(new View.OnClickListener() {


                [USER=1021285]@override[/USER]

                public void onClick(View v) {

                    // TODO Auto-generated method stub

                    UserFunctions userFunction = new UserFunctions();

                    DatabaseHandler db = new DatabaseHandler(

                            getApplicationContext());

                    userFunction.logoutUser(getApplicationContext());

                    db.addUser("restaurant-myapp", "Restaurant Myapp",

                            "office@myapp.ro", "0720191423",

                            "15-30 31-12-2013", "Dezactivata", "MYAPP",

                            "x1x2x3x44");

                    Toast.makeText(getApplicationContext(),

                            "Conectat cu succes la Restaurant Myapp !",

                            Toast.LENGTH_LONG).show();

                    start_menu();

                }

            });

            about = (Button) findViewById(R.id.bAbout);

            about.setOnClickListener(new View.OnClickListener() {


                [USER=1021285]@override[/USER]

                public void onClick(View v) {

                    // TODO Auto-generated method stub

                    about_dialog();

                }

            });

        } else {

            start_menu();

        }

    }


    void about_dialog() {

        d = new Dialog(this);

        d.requestWindowFeature(Window.FEATURE_NO_TITLE);

        d.setContentView(R.layout.dialog_about);

        d.setCancelable(true);

        d.setCanceledOnTouchOutside(true);

        TextView link = (TextView) d.findViewById(R.id.tvLink);

        link.setMovementMethod(LinkMovementMethod.getInstance());

        Button bOK = (Button) d.findViewById(R.id.bOK);

        bOK.setOnClickListener(new View.OnClickListener() {


            public void onClick(View view) {

                d.dismiss();

            }

        });

        d.show();

    }


    void login() {

        d = new Dialog(this);

        d.requestWindowFeature(Window.FEATURE_NO_TITLE);

        d.setContentView(R.layout.form_login);

        d.setCancelable(true);

        d.setCanceledOnTouchOutside(true);

        etName = (EditText) d.findViewById(R.id.etUsername);

        etPassword = (EditText) d.findViewById(R.id.etPassword);

        loginErrorMsg = (TextView) d.findViewById(R.id.tvErrorLoginMsg);

        Button bLogin = (Button) d.findViewById(R.id.bLogin);

        bLogin.setOnClickListener(new View.OnClickListener() {


            public void onClick(View view) {

                username = etName.getText().toString();

                password = etPassword.getText().toString();

                InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);

                imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);

                new Login().execute();

            }

        });

        d.show();

    }


    class Login extends AsyncTask<String, String, String> {

        private ProgressDialog pDialog = null;

        DatabaseHandler db;

        JSONObject json_user;

        int success = 0;


        [USER=1021285]@override[/USER]

        protected void onPreExecute() {

            super.onPreExecute();

            pDialog = new ProgressDialog(Main.this);

            pDialog.setMessage("Conectare...");

            pDialog.setIndeterminate(false);

            pDialog.setCancelable(false);

            pDialog.show();

        }


        protected String doInBackground(String... args) {

            UserFunctions userFunction = new UserFunctions();

            JSONObject json = userFunction.loginUser(username, password);

            try {

                if (json.getString(TAG_SUCCESS) != null) {

                    String res = json.getString(TAG_SUCCESS);

                    if (Integer.parseInt(res) == 1) {

                        success = 1;

                        db = new DatabaseHandler(getApplicationContext());

                        json_user = json.getJSONObject("user");

                        userFunction.logoutUser(getApplicationContext());

                        password = username = null;

                        db.addUser(json_user.getString(TAG_NAME),

                                json_user.getString(TAG_FULLNAME),

                                json_user.getString(TAG_EMAIL),

                                json_user.getString(TAG_PHONE),

                                json_user.getString(TAG_DATE),

                                json_user.getString(TAG_SSID_CONNECT),

                                json_user.getString(TAG_SSID),

                                json_user.getString(TAG_USER_UID));

                    } else {

                        success = 0;

                    }

                }

            } catch (JSONException e) {

                e.printStackTrace();

            }

            return null;

        }


        protected void onPostExecute(String file_url) {

            try {

                pDialog.dismiss();

                pDialog = null;

            } catch (Exception e) {

                pDialog = null;

            }

            runOnUiThread(new Runnable() {

                public void run() {

                    if (success == 0) {

                        loginErrorMsg.setVisibility(View.VISIBLE);

                    } else {

                        Toast.makeText(

                                getApplicationContext(),

                                "Conectat cu succes la " + db.getUserDetails(2)

                                        + " !", Toast.LENGTH_LONG).show();

                        d.dismiss();

                        start_menu();

                    }

                }

            });

        }

    }


    [USER=1021285]@override[/USER]

    protected void onResume() {

        // TODO Auto-generated method stub

        super.onResume();

        if (!isNetworkAvailable()) {

            network_error(getResources().getString(R.string.network_error));

        }

    }


    void start_menu() {

        Intent menu = new Intent(getApplicationContext(), ChooseMenu.class);

        menu.putExtra("order", "no");

        startActivity(menu);

        finish();

    }


    private boolean isNetworkAvailable() {

        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetworkInfo = connectivityManager

                .getActiveNetworkInfo();

        return activeNetworkInfo != null && activeNetworkInfo.isConnected();

    }


    void network_error(String error_type) {

        final Dialog d = new Dialog(this);

        d.requestWindowFeature(Window.FEATURE_NO_TITLE);

        d.setContentView(R.layout.dialog_network_error);

        d.setCancelable(true);

        d.setCanceledOnTouchOutside(true);

        TextView error = (TextView) d.findViewById(R.id.tvNetError);

        error.setText(error_type);

        Button settings = (Button) d.findViewById(R.id.bSettingsError);

        settings.setOnClickListener(new View.OnClickListener() {


            [USER=1021285]@override[/USER]

            public void onClick(View v) {

                // TODO Auto-generated method stub

                startActivityForResult(new Intent(

                        android.provider.Settings.ACTION_WIRELESS_SETTINGS), 0);

                d.dismiss();

            }

        });

        Button refresh = (Button) d.findViewById(R.id.bRefresh);

        refresh.setOnClickListener(new View.OnClickListener() {


            [USER=1021285]@override[/USER]

            public void onClick(View v) {

                // TODO Auto-generated method stub

                Intent intent = getIntent();

                finish();

                startActivity(intent);

            }

        });

        d.show();}}



 
Last edited:
You're getting a NoSuchMethod error. I suspect there is a problem with a library deployed with your APK. Possibly you have multiple versions of the same library?

The problem in your code is triggered by this

Code:
JSONObject json = userFunction.loginUser(username, password);

But the userFunction class is not shown. If you do show this code, please put it in a nicely formatted code insert. Thanks.
 
This is the code missing :
Java:
import library.UserFunctions;
?

I installed httpclient 4.5.1.jar and httpcore 4.4.4.jar as external JAR`s, if helps.
I also know that for Android 6, httpclient has been removed. My issues is : how to use correct httpurlconnection ? Can be used as external JAR, something like : httpurlconnection.JAR ?
 
Back
Top Bottom