1

I'm new in Android Studio and I'm trying to make an App, that must read an information from the database. I have already made a database and now I'm trying to connect it to my app. But it crashes. I would be very thankful if somebody could help me. Thanks! There are no problems with the connection in eclipse just with Java.

Here is my code:

package com.example.sergey.autohuttererapp;

import android.inputmethodservice.KeyboardView;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.sql.*;

public class MainActivity extends AppCompatActivity {
  private final static String url = "myurl;
  private final static String user = "myuser";
  private final static String pass = "mypass";
  private TextView name, vorname, email, telefon, vertragnmr, datum, person, status;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    name = (TextView) findViewById(R.id.idName);
    vorname = (TextView) findViewById(R.id.idVorname);
    email = (TextView) findViewById(R.id.idEmail);
    telefon = (TextView) findViewById(R.id.idTelefon);
    vertragnmr = (TextView) findViewById(R.id.idVertragnmr);
    datum = (TextView) findViewById(R.id.idDatum);
    person = (TextView) findViewById(R.id.idPerson);
    status = (TextView) findViewById(R.id.idStatus);
    Button buttonex = (Button) findViewById(R.id.idExec);



    buttonex.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new myTask().execute();
        }
    });
}
private class myTask extends AsyncTask<Void, Void, Void>{
    private String sname = "";
    private String svorname = "";
    private String semail = "";
    private String sdatum = "";
    private String  sperson = "";
    private String sstatus = "";
    private int itelefon = 0;
    private int ivertragnmr = 0;


    @Override
    protected Void doInBackground(Void... arg) {

        try {
            DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
            Connection con;
            con = DriverManager.getConnection(url, user, pass);
            Statement stmt;
            stmt = con.createStatement();
            String sqlstmt = "Select * from KUNDEN where ID = 4";

            final ResultSet rs = stmt.executeQuery(sqlstmt);
            rs.next();
            sname = rs.getString("NAME");
            svorname = rs.getString("VORNAME");
            semail = rs.getString("EMAIL");
            sperson = rs.getString("PERSON");
            sstatus = rs.getString("STATUS");
            itelefon = rs.getInt("TELEFON");
            ivertragnmr = rs.getInt("VRTNUMMER");


        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute (Void result){

        name.setText(sname);
        vorname.setText(svorname);
        email.setText(semail);
        telefon.setText(itelefon);
        vertragnmr.setText(ivertragnmr);
        person.setText(sperson);
        status.setText(sstatus);
        super.onPostExecute(result);
    }
}


}

This is log:

java.lang.RuntimeException: An error occurred while executing doInBackground()
  at android.os.AsyncTask$3.done(AsyncTask.java:318)
  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
  at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
  at java.util.concurrent.FutureTask.run(FutureTask.java:242)
  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
  at java.lang.Thread.run(Thread.java:762)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Loracle/jdbc/driver/BlockSource$ThreadedCachingBlockSource$BlockReleaserListener;
  at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource.<clinit>(BlockSource.java:402)
  at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource.createBlockSource(BlockSource.java:429)
  at oracle.jdbc.driver.BlockSource.createBlockSource(BlockSource.java:80)
  at oracle.jdbc.driver.BlockSource.createBlockSource(BlockSource.java:70)
  at oracle.jdbc.driver.PhysicalConnection.setBlockSource(PhysicalConnection.java:656)
  at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:699)
  at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
  at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564)
  at java.sql.DriverManager.getConnection(DriverManager.java:569)
  at java.sql.DriverManager.getConnection(DriverManager.java:219)
  at com.example.sergey.autohuttererapp.MainActivity$myTask.doInBackground(MainActivity.java:59)
  at com.example.sergey.autohuttererapp.MainActivity$myTask.doInBackground(MainActivity.java:42)
  at android.os.AsyncTask$2.call(AsyncTask.java:304)
  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
  at java.lang.Thread.run(Thread.java:762) 
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaserListener
  at java.lang.VMClassLoader.findLoadedClass(Native Method)
  at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:362)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
  at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource.<clinit>(BlockSource.java:402) 
  at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource.createBlockSource(BlockSource.java:429) 
  at oracle.jdbc.driver.BlockSource.createBlockSource(BlockSource.java:80) 
  at oracle.jdbc.driver.BlockSource.createBlockSource(BlockSource.java:70) 
  at oracle.jdbc.driver.PhysicalConnection.setBlockSource(PhysicalConnection.java:656) 
  at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:699) 
  at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385) 
  at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30) 
  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564) 
  at java.sql.DriverManager.getConnection(DriverManager.java:569) 
  at java.sql.DriverManager.getConnection(DriverManager.java:219) 
  at com.example.sergey.autohuttererapp.MainActivity$myTask.doInBackground(MainActivity.java:59) 
  at com.example.sergey.autohuttererapp.MainActivity$myTask.doInBackground(MainActivity.java:42) 
  at android.os.AsyncTask$2.call(AsyncTask.java:304) 
  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
  at java.lang.Thread.run(Thread.java:762) 
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/management/NotificationListener;
  at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource.<clinit>(BlockSource.java:402) 
  at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource.createBlockSource(BlockSource.java:429) 
  at oracle.jdbc.driver.BlockSource.createBlockSource(BlockSource.java:80) 
  at oracle.jdbc.driver.BlockSource.createBlockSource(BlockSource.java:70) 
  at oracle.jdbc.driver.PhysicalConnection.setBlockSource(PhysicalConnection.java:656) 
  at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:699) 
  at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385) 
  at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30) 
  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564) 
  at java.sql.DriverManager.getConnection(DriverManager.java:569) 
  at java.sql.DriverManager.getConnection(DriverManager.java:219) 
  at com.example.sergey.autohuttererapp.MainActivity$myTask.doInBackground(MainActivity.java:59) 
  at com.example.sergey.autohuttererapp.MainActivity$myTask.doInBackground(MainActivity.java:42) 
  at android.os.AsyncTask$2.call(AsyncTask.java:304) 
  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
  at java.lang.Thread.run(Thread.java:762) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "javax.management.NotificationListener" on path: DexPathList[[zip file "/data/app/com.example.sergey.autohuttererapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.sergey.autohuttererapp-1/lib/arm64, /system/lib64, /vendor/lib64]]
  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
  at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource.<clinit>(BlockSource.java:402) 
  at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource.createBlockSource(BlockSource.java:429) 
  at oracle.jdbc.driver.BlockSource.createBlockSource(BlockSource.java:80) 
  at oracle.jdbc.driver.BlockSource.createBlockSource(BlockSource.java:70) 
  at oracle.jdbc.driver.PhysicalConnection.setBlockSource(PhysicalConnection.java:656) 
  at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:699) 
  at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385) 
  at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30) 
  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564) 
  at java.sql.DriverManager.getConnection(DriverManager.java:569) 
  at java.sql.DriverManager.getConnection(DriverManager.java:219) 
  at com.example.sergey.autohuttererapp.MainActivity$myTask.doInBackground(MainActivity.java:59) 
  at com.example.sergey.autohuttererapp.MainActivity$myTask.doInBackground(MainActivity.java:42) 
  at android.os.AsyncTask$2.call(AsyncTask.java:304) 
  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
  at java.lang.Thread.run(Thread.java:762) 
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
  • 1
    what exception are you getting in the logs? – Kushan Apr 02 '18 at 16:34
  • 1
    It looks like you are using the JDBC driver. Please read: [JDBC vs Web Service for Android](https://stackoverflow.com/q/15853367/295004) – Morrison Chang Apr 02 '18 at 16:35
  • Added logs, thanks! – Kovalov Sergii Apr 02 '18 at 16:44
  • Your app cannot find some class in the jdbc driver. Check that your classpath contains your jdbc driver. Moreovere your jdbc driver cannot be too uptodate. Most recent versions are not supported by android, as they require components not available in android. Anyway it's better to use web services exposed by oracle, as explained above. – Saxon Apr 02 '18 at 18:34
  • Ok, Thank You for an answer, probably that's a problem, because I have the latest version of jdbc. I'll try with web services. – Kovalov Sergii Apr 02 '18 at 19:17

0 Answers0