2017-07-30 1 views
0

Ich versuche, eine Verbindung zu Cloud SQL mit Android Studio. Beim Empfang dieser FehlerEmpfangen Socket-Fehler beim Verbinden mit Cloud SQL

07-30 16:51:12.511 23120-23120/com.example.pratyush.geofencing W/System.err: java.sql.SQLException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/cloud/sql/mysql/SslSocketFactory; 

Mein Code:

public void getDatafromSQL() { 
    Log.d("GeoL", "getSQL"); 
    Connection connection; 
    String query = "Some query"; 
    try { 
     String databaseName = "dbName"; 

     String instanceConnectionName = "instnce name"; 

     String jdbcUrl = String.format(
       "jdbc:mysql://google/%s?cloudSqlInstance=%s&" 
         + "socketFactory=com.google.cloud.sql.mysql.SocketFactory", 
       databaseName, 
       instanceConnectionName); 
     connection = DriverManager.getConnection(jdbcUrl, "user", "pwd"); 

     Statement statement = connection.createStatement(); 
     ResultSet resultSet = statement.executeQuery(query); 
     Log.d("GeoL", String.valueOf(resultSet)); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

ich MySQL Connector jar und MySQL-Socket-Factory jar als Abhängigkeiten verwende.

Auch ich kann compile 'com.google.cloud.sql: mysql-socket-factory: 1.0.3' dies als eine Abhängigkeit verwenden.

Bitte helfen.

Vielen Dank im Voraus.

Antwort

0

Die Bibliothek enthält mehrere Gläser. Wenn Sie die JAR-Dateien manuell hinzufügen, müssen Sie auch ihre Abhängigkeiten hinzufügen (z. B. jdbc-socket-factory-core jar, möglicherweise andere).

Having saided, Sie sollten wirklich nicht manuell Verpackung Gläser, weil es ein langwieriger und fehleranfälliger Prozess ist.

Schließlich, es sei denn, dies ist eine Spielzeug-App für sich selbst, sollten Sie nicht direkt von Ihrer mobilen App eine Verbindung zur Datenbank herstellen. Sie geben im Wesentlichen direkten Zugriff auf Ihre Datenbank an jeden, der über eine Kopie der App verfügt.

Verwandte Themen