Android JDBC连接导致ctahttp异常
我目前正在尝试建立一个从我的Android应用程序到我的raspberry pi上运行的MySQL服务器的连接 我将库添加到模块菜单中的Dependency中,从而正确地将库添加到android studio中 我在我的程序中实现了这样的JDBC方法Android JDBC连接导致ctahttp异常,android,mysql,android-studio,jdbc,Android,Mysql,Android Studio,Jdbc,我目前正在尝试建立一个从我的Android应用程序到我的raspberry pi上运行的MySQL服务器的连接 我将库添加到模块菜单中的Dependency中,从而正确地将库添加到android studio中 我在我的程序中实现了这样的JDBC方法 public void readDatabase(String query)throws Exception{ try { Class.forName("com.mysql.cj.jdbc.Driver
public void readDatabase(String query)throws Exception{
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://192.168.0.101/mydb","user","mypassword");
statement = connection.createStatement();
resultSet = statement.executeQuery(query);
System.out.println(resultSet);
}catch (ClassNotFoundException e){
e.printStackTrace();
}finally {
close();
}
}
private void close(){
try {
if (resultSet != null){
resultSet.close();
}
if (statement != null){
statement.close();
}
if ( connection != null){
connection.close();
}
}catch (Exception e){
}
}
每次我启动程序,我都会得到一个类未找到错误。
它说:
W/System:ClassLoader引用了未知路径:System/framework/mediatek-cta.jar
I/System.out:e:java.lang.ClassNotFoundException:com.mediatek.cta.CtaHttp
我试图用不同的方法寻找问题,但我无法找出问题所在。我甚至不知道cta课程是什么。也许有人能帮我 CTA=中国型式认证,这是联发科为测试目的在Android中添加的东西 您的错误发生在DriverManager.getConnection()中,它可能使用Android的libcore中的okhttp、apache http或Socket类来执行请求 联发科修补了这些库,以添加对HTTP请求的控制。它尝试动态加载在/system/framework/mediatek-cta.jar中定义的一些方法,但在您的android设备的文件系统中可能不存在或无法访问这些方法 我看到了5种解决方案:
- 确保medatek cta已添加到产品包装和产品启动罐中
- 删除libcore、okhttp和apachehttp中的钩子
因为我曾经遇到过同样的信息,我也首先被它误导了。 但是,事实证明,您无法在主线程上打开套接字或其他网络连接(请参阅)。这也可能是你的问题所在
正如vhamon指出的,此消息本身似乎只是用于测试目的的信息。有什么安全的方法来解决此问题吗?