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ć