I was looking for a way to connect an Android App to a MySQL database, and also using the SumUp SDK (https://github.com/sumup/sumup-android-sdk). Now, separately, they both worked like a charm, but my aim is to make an app that uses both functions, and that's where the problem starts. I added all the dependencies from both repositories, classes, permits from the Manifest, everything. But for some reason, when I try to make a connection to the DB, it throws me an error.
2021-12-24 19:52:05.845 13858-13901/com.sumup.sdksampleapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.sumup.sdksampleapp, PID: 13858
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$4.done(AsyncTask.java:399)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.lang.ExceptionInInitializerError
at c.b.b.x.d6(SourceFile:381)
at c.b.b.s1.connect(SourceFile:323)
at java.sql.DriverManager.getConnection(DriverManager.java:580)
at java.sql.DriverManager.getConnection(DriverManager.java:218)
at com.sumup.sdksampleapp.Inicio$a.a(SourceFile:63)
at com.sumup.sdksampleapp.Inicio$a.doInBackground(SourceFile:50)
at android.os.AsyncTask$3.call(AsyncTask.java:378)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: c.b.b.q0.<init> [class java.lang.String, int, class java.util.Properties, class java.lang.String, class java.lang.String]
at c.b.b.x.<clinit>(SourceFile:311)
at c.b.b.x.d6(SourceFile:381)
at c.b.b.s1.connect(SourceFile:323)
at java.sql.DriverManager.getConnection(DriverManager.java:580)
at java.sql.DriverManager.getConnection(DriverManager.java:218)
at com.sumup.sdksampleapp.Inicio$a.a(SourceFile:63)
at com.sumup.sdksampleapp.Inicio$a.doInBackground(SourceFile:50)
at android.os.AsyncTask$3.call(AsyncTask.java:378)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.lang.NoSuchMethodException: c.b.b.q0.<init> [class java.lang.String, int, class java.util.Properties, class java.lang.String, class java.lang.String]
at java.lang.Class.getConstructor0(Class.java:2332)
at java.lang.Class.getConstructor(Class.java:1728)
at c.b.b.x.<clinit>(SourceFile:306)
at c.b.b.x.d6(SourceFile:381)
at c.b.b.s1.connect(SourceFile:323)
at java.sql.DriverManager.getConnection(DriverManager.java:580)
at java.sql.DriverManager.getConnection(DriverManager.java:218)
at com.sumup.sdksampleapp.Inicio$a.a(SourceFile:63)
at com.sumup.sdksampleapp.Inicio$a.doInBackground(SourceFile:50)
at android.os.AsyncTask$3.call(AsyncTask.java:378)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inicio);
new InfoAsyncTask().execute();
}
@SuppressLint("StaticFieldLeak")
public class InfoAsyncTask extends AsyncTask<Void, Void, Map<String, String>> {
@Override
protected Map<String, String> doInBackground(Void... voids) {
Map<String, String> info = new HashMap<>();
Log.i("Info", "Se hará la conexión con la base de datos");
try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD)) {
String sql = "SELECT * FROM producto";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
info.put("name", resultSet.getString("nombre"));
}
}catch (Exception e) {
Log.e("InfoAsyncTask", "Error reading school information", e);
}
return info;
}
}
I don't know why does it happen, but I really hope someone can give me a solution please.