Android JDBC连接导致ctahttp异常

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

我目前正在尝试建立一个从我的Android应用程序到我的raspberry pi上运行的MySQL服务器的连接

我将库添加到模块菜单中的Dependency中,从而正确地将库添加到android studio中

我在我的程序中实现了这样的JDBC方法

 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种解决方案:

  • 通过OTA或adb重新安装添加合适的联发科cta.jar(如果您使用的是自定义/根ROM)
  • 使用具有相同应用程序源代码的另一个设备(非基于Mediatek的设备不会有此问题)
  • 通过官方OTA更新升级操作系统,希望设备制造商解决了这个问题
  • 通过以下修改自行重建和自定义操作系统
    • 确保medatek cta已添加到产品包装和产品启动罐中
    • 删除libcore、okhttp和apachehttp中的钩子
  • 联系操作系统维护人员的支持人员

  • 因为我曾经遇到过同样的信息,我也首先被它误导了。 但是,事实证明,您无法在主线程上打开套接字或其他网络连接(请参阅)。这也可能是你的问题所在


    正如vhamon指出的,此消息本身似乎只是用于测试目的的信息。

    有什么安全的方法来解决此问题吗?