无法将 Android Studio 与 Oracle Database 19c 连接



我最近尝试通过ojdbc驱动程序将Android Studio与OracleDB连接,但没有成功。

我在Windows10上使用ojdbc8.jar、Oracle Database 19c和jdk1.8.0_241。

我试图用Intellij中相同的代码和组件做完全相同的事情,一切都很顺利

当我尝试连接到数据库时,我收到以下错误:请参见Class.forName.行中的_error_print"java.lang.NoClassDefFoundError:未能解析:Ljava/sql/DriverAction;">

我已经安装了Android 28,我的渐变版本是3.6.2。我试图清理项目,并使缓存无效/重新启动,但似乎什么都不起作用。

事实上,在java.sql的Android28(Sdk(中,确实不存在丢失的文件,而是存在于jdk中。

我很感激能得到的任何帮助,谢谢!附言:英语不是我的母语,如果有任何错误,我很抱歉。

这是我使用的代码:

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);
}
}
}

我使用Oracle OJDBC 18.3中的ojdbc8.jar解决了同样的问题:https://www.oracle.com/database/technologies/appdev/jdbc-ucp-183-downloads.html

最新更新