Pra*_*ani 6 oracle android sqlexception nosuchmethoderror oracle12c
自过去 3 天以来,我仅通过简单的Android连接就遇到了问题- Oracle 12c 数据库。
最近我上传了Android-Oracle-Connection但它是 11g 版本。我用过ojdbc14.jar
我在该演示中使用了以下代码行:
/**
* Driver for Oracle
*/
private static final String DEFAULT_DRIVER = "oracle.jdbc.driver.OracleDriver";
/**
* URL to connect database
*/
private static final String DEFAULT_URL = "jdbc:oracle:thin:@192.168.0.102:1521:oracle"; // Change IP_Address:Database
/**
* Creating Connection
*
* @param driver driver object
* @param url url for db
* @param username username
* @param password password
* @return Connection object
* @throws ClassNotFoundException throwing exception
* @throws SQLException throwing exception
*/
public static Connection createConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException {
Class.forName(driver);
return DriverManager.getConnection(url, username, password);
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,我使用 IP : 192.168.0.102 for 11g 已成功连接,但我使用相同的代码更改了 12c 的IP 192.168.0.105但它不起作用。
我收到错误如下:
java.sql.SQLException: ORA-28040: No matching authentication protocol
Run Code Online (Sandbox Code Playgroud)
我已经检查过这个答案并尝试过但出现错误:
W/oracle.jdbc: Error while registering Oracle JDBC Diagnosability MBean.
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/ManagementFactory;
at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:321)
at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:203)
at java.security.AccessController.doPrivileged(AccessController.java:43)
at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:199)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at java.lang.Class.forName(Class.java:379)
Run Code Online (Sandbox Code Playgroud)
我也已经尝试过这个答案,但得到的错误是:
2019-11-23 16:36:12.564 28567-28567/com.demo.oracle E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.demo.oracle, PID: 28567
java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.runtime/javalib/core-oj.jar)
at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:230)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at java.lang.Class.forName(Class.java:379)
Run Code Online (Sandbox Code Playgroud)
我没有找到任何与 12c 相关的教程或文档。任何人都可以帮忙吗?
老帖子,但只是为了回答它,您必须在数据库服务器 sqlnet.ora 文件上添加一个参数以允许来自旧客户端的连接。当您的客户端较旧并且服务器仅允许来自最新版本的 sqlnet 客户端的连接时,会发生此错误。示例 11g 客户端尝试连接到 18c DB 服务器。
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |