我正在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连接?
非常感谢你。
米格尔
答案 0 :(得分:1)
StandardSocketOptions仅在API级别24(Nougat)中添加到Android。因此,除非您的API级别为24或更高的设备,否则您将获得该异常。
但是,即使您在此类设备上运行应用程序,也可能缺少其他所需的类。这是因为neo4j Java库不会尝试以Android环境为目标(仅支持部分标准Java库)。所以,这种问题是可以预料的。 Android应用应改为使用neo4j HTTP API。