Невозможно подключить Android Studio с Oracle База данных 19c - PullRequest
0 голосов
/ 14 апреля 2020

Я недавно пытался соединить Android Studio с OracleDB через драйвер ojdb c, но безуспешно.

Я использую ojdbc8.jar, Oracle База данных 19 c и jdk1 .8.0_241 на Windows10.

Я пытался сделать то же самое с тем же кодом и компонентами в Intellij, и все прошло хорошо.

Когда я пытаюсь для подключения к базе данных я получил следующую ошибку: see_error_print"java .lang.NoClassDefFoundError: Ошибка разрешения: Ljava / sql / DriverAction;" в строке Class.forName.

Я установил Android 28 и моя версия Gradle - 3.6.2. Я пытался очистить проект и сделать недействительными кэши / перезапустить, но, похоже, ничего не работает.

На самом деле, в Android28 (Sdk) на java. sql, действительно, отсутствующий файл не существует, но существует в jdk.

Я ценю любую помощь, которую могу получить, спасибо! PS: engli sh не мой родной язык, извините, если есть какие-либо ошибки.

Вот код, который я использовал:

package com.lamtias.isplit.ActivityLogin;

import android.os.Bundle;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import com.lamtias.isplit.Logic.ISplit;
import com.lamtias.isplit.R;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class SignUpActivity extends AppCompatActivity {

    private ISplit iSplit;
    private static final String DEFAULT_DRIVER = "oracle.jdbc.driver.OracleDriver";
    private static final String DEFAULT_URL = "jdbc:oracle:thin:@localhost:1521:ISplitDB";
    private static final String DEFAULT_USERNAME = "c##marcia";
    private static final String DEFAULT_PASSWORD = "marcia";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
        JDBCexample(DEFAULT_URL, DEFAULT_USERNAME, DEFAULT_PASSWORD);
    }

    public static void JDBCexample(String dbid, String userid, String passwd)
    {
        try {

            Class.forName ("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection(
                    "jdbc:oracle:thin:@localhost:1521:ISplitDB", userid, passwd);
            if(conn!=null)
                System.out.println ("oiiiiiiiiiiiiiiiiiiiiiiiiiiii");
            else
                System.out.println ("oeeeeeeeeeeeeeeeeeeeeeeeeeeee");
            Statement stmt = conn.createStatement();
            //stmt.executeUpdate( "insert into users values ('1', 'Perryridge')");
            stmt.close();
            conn.close();
        }
        catch (SQLException sqle) {
            System.out.println("SQLException : " + sqle);
        } catch (Exception e){
            System.out.println("Exception : " + e);
        }
    }
}

...