2017-07-20 77 views
1

我在Android中編寫應用程序,但是我無法將其連接到本地neo4j數據庫。我無法將我的Android應用程序連接到neo4j數據庫

在我已經把這個依賴關係的gradle:

compile 'org.neo4j.driver:neo4j-java-driver:1.4.1' 
compile 'org.neo4j:neo4j-jdbc:3.1.0' 

連接代碼如下:

import org.neo4j.driver.v1.Driver; 
import org.neo4j.driver.v1.GraphDatabase; 
import org.neo4j.driver.v1.Session; 
import org.neo4j.driver.v1.StatementResult; 
import static org.neo4j.driver.v1.Values.parameters; 


public class ConsultasBD { 
    @TargetApi(Build.VERSION_CODES.KITKAT) 
    public static boolean consultaLogin(String u, String p) { 
     try { 
      // Connect 
      Driver driver = GraphDatabase.driver("bolt://192.168.0.39:7474"); 
      Session session = driver.session(); 
      // Querying 
      StatementResult result = session.run("MATCH (a:Person {usr: {name}, Pass: {pass}})", 
        parameters(u, p)); 

      while (result.hasNext()) 
      { 
       System.out.println("OK"); 
      } 

      session.close(); 
      driver.close(); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
      return false; 
     } 
     return true; 
    } 
} 

但是當我運行它,我得到這個異常:

java.lang.NoClassDefFoundError: 失敗的解決方法:Ljava/net/StandardSocketOptions;

我不知道該如何解決。

任何人都可以解釋我怎麼連接我的應用程序與neo4j?

非常感謝。

米格爾

回答

2

StandardSocketOptions僅加入API級24(牛軋糖)到Android。因此,除非您的設備API等級爲24或更高,否則您將獲得該例外。

但是,即使您在這樣的設備上運行應用程序,也可能會丟失其他所需的類。這是因爲neo4j Java庫不會嘗試定位Android環境(它只支持部分標準Java庫)。所以,這種問題是可以預料的。 Android應用程序應該使用neo4j HTTP API

相關問題