我无法将我的Android应用程序与neo4j数据库连接

时间:2017-07-20 19:21:02

标签: android database 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连接?

非常感谢你。

米格尔

1 个答案:

答案 0 :(得分:1)

StandardSocketOptions仅在API级别24(Nougat)中添加到Android。因此,除非您的API级别为24或更高的设备,否则您将获得该异常。

但是,即使您在此类设备上运行应用程序,也可能缺少其他所需的类。这是因为neo4j Java库不会尝试以Android环境为目标(仅支持部分标准Java库)。所以,这种问题是可以预料的。 Android应用应改为使用neo4j HTTP API