Android Oracle Database Connection - PullRequest
0 голосов
/ 05 июля 2018

Я работаю над приложением для Android, которое должно подключаться к базе данных Oracle с помощью драйвера Ojdbc7. Все это работает без проблем, когда я делаю это на основе консоли и без графического интерфейса.

Но когда я использую графический интерфейс, я получаю одно исключение за другим

//Activity main:

public class MainActivity extends AppCompatActivity {

        private ArrayAdapter<String> adapter;
        private LinkedList<String> list;
        private ListView lview;
        private DBAccess access;



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

        list = new LinkedList<>();
        lview = findViewById(R.id.ListView);

        try{
            access = new DBAccess();
            list = access.getTables();
        }catch(Exception ex)
        {
            Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT);
        }



       //list.add("TestItem1");
       //list.add("TestItem2");

        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, list);
        //adapter.add("TestItem3");

        try {
            lview.setAdapter(adapter);
            adapter.notifyDataSetChanged();
        }catch(Exception ex)
        {
            Toast.makeText(this, ex.getMessage(), Toast.LENGTH_SHORT);
        }
     }
}




//DBAccess:

public class DBAccess
{
    private String db_driver = "oracle.jdbc.driver.OracleDriver";
    private String db_url = "PRIVATE STRING FROM WORK";


public DBAccess()
    {

    }

public LinkedList<String> getTables()
    {
        LinkedList<String> list = new LinkedList();

        try{
           Class.forName(db_driver);
        }
        catch (ClassNotFoundException ex)
        {
            System.out.println(ex.getMessage());
        }
        try {

            Connection con = DriverManager.getConnection(db_url, "username", "password");

            Statement stmt = con.createStatement();

            ResultSet rs = stmt.executeQuery("SELECT table_name FROM tabs");

            while(rs.next())
            {
                list.add(rs.getString("table_name"));
            }

        }catch(Exception ex)
        {
            System.out.println(ex.getMessage());
        }
        return list;
    }
}

Мои ошибки:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.michael.jungheinrichv2, PID: 6431
                  java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/management/NotificationListener;

E/AndroidRuntime:   
          Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.example.michael.jungheinrichv2-o_84jhFcchIwDcB7u86aIA==/split_lib_resources_apk.apk

Ошибка возникает при вызове DriverManager.getConnection

Я надеюсь, что любой может мне помочь! Дайте мне знать, если вам нужна дополнительная информация

...