Wątek zablokowany 2018-09-03 15:06 przez furious programming.

Android studio - SQLException

0

Słuchajcie mam taki problem, piszę na zadanie domowe aplikację, do której powinno logować się numerem ID, który jest nazwą tablicy w zewnętrznej bazie danych. Mam już to zrobione i w momencie gdy użytkownik wpisuje prawidłowy login, następuje logowanie. Problem pojawia się wówczas gdy użytkownik poda błędne id, bo wtedy aplikacja się zatrzymuje i otrzymuje błąd

 E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.beatris.myapplicationtest, PID: 27964
                  java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Locale$Category;
                      at org.postgresql.util.GT.<init>(GT.java:35)
                      at org.postgresql.util.GT.<clinit>(GT.java:21)
                      at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:280)
                      at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
                      at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
                      at org.postgresql.Driver.makeConnection(Driver.java:454)
                      at org.postgresql.Driver.connect(Driver.java:256)
                      at java.sql.DriverManager.getConnection(DriverManager.java:179)
                      at java.sql.DriverManager.getConnection(DriverManager.java:213)
                      at com.beatris.myapplicationtest.ConnectionHelper.connectionclass(ConnectionHelper.java:24)
                      at com.beatris.myapplicationtest.GetData.idclass(GetData.java:21)
                      at com.beatris.myapplicationtest.StartActivity$1.onClick(StartActivity.java:48)
                      at android.view.View.performClick(View.java:5210)
                      at android.view.View$PerformClick.run(View.java:21328)
                      at android.os.Handler.handleCallback(Handler.java:739)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:148)
                      at android.app.ActivityThread.main(ActivityThread.java:5551)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:731)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
                   Caused by: java.lang.ClassNotFoundException: Didn't find class "java.util.Locale$Category" on path: DexPathList[[zip file "/data/app/com.beatris.myapplicationtest-1/base.apk"],nativeLibraryDirectories=[/data/app/com.beatris.myapplicationtest-1/lib/arm, /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 org.postgresql.util.GT.<init>(GT.java:35) 
                      at org.postgresql.util.GT.<clinit>(GT.java:21) 
                      at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:280) 
                      at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) 
                      at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195) 
                      at org.postgresql.Driver.makeConnection(Driver.java:454) 
                      at org.postgresql.Driver.connect(Driver.java:256) 
                      at java.sql.DriverManager.getConnection(DriverManager.java:179) 
                      at java.sql.DriverManager.getConnection(DriverManager.java:213) 
                      at com.beatris.myapplicationtest.ConnectionHelper.connectionclass(ConnectionHelper.java:24) 
                      at com.beatris.myapplicationtest.GetData.idclass(GetData.java:21) 
                      at com.beatris.myapplicationtest.StartActivity$1.onClick(StartActivity.java:48) 
                      at android.view.View.performClick(View.java:5210) 
                      at android.view.View$PerformClick.run(View.java:21328) 
                      at android.os.Handler.handleCallback(Handler.java:739) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:148) 
                      at android.app.ActivityThread.main(ActivityThread.java:5551) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:731) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621) 
                  	Suppressed: java.lang.ClassNotFoundException: java.util.Locale$Category
                      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)
                      		... 22 more
                   Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

Dodam, żę mój program sprawdza czy polecenie w bazie zostaje wykonane i jeżeli tak to następuje logowanie a jeżeli nie to ma zostać wyświtelony komunikat Niepoprawne ID. Mój kod

   public boolean idclass(){

        try{
            ConnectionHelper conStr =new ConnectionHelper();
            connect = conStr.connectionclass();
            String query = "select * from" + " " + id_string;
            Statement stmt = connect.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            if(rs != null){temp = true;}

            connect.close();

        }catch (SQLException sql){
            sql.printStackTrace();
        }
        return temp;

        btnSignIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                GetDataId id_data = new GetDataId();
                isConnect = id_data.idclass();


                if(isConnect == true){

                    Intent homeIntent = new Intent(StartActivity.this, MainActivity.class);
                    startActivity(homeIntent);

                }
                else {

                    Toast.makeText(StartActivity.this, "Id nieprawidłowe!", Toast.LENGTH_SHORT).show();


                }
            }
        });

Nie hejtujcie, że coś jest źle bo to tylko zadanie domowe a ja ucze się programować

1

Dostajesz błąd: "NoClassDefFoundError" a próbujesz łapać "SQLException".

1 użytkowników online, w tym zalogowanych: 0, gości: 1