2016-04-19 7 views
0

私はAndroidアプリケーションでNeo4j OGMライブラリ2.0.1を使用しようとしています。Neo4j OGMライブラリドライバ設定

これは私のbuilde.gradleファイルです:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.3.0' 
    compile 'org.neo4j:neo4j-ogm-core:2.0.1' 
    compile 'org.neo4j:neo4j-ogm-http-driver:2.0.1' 
} 

はその後、私の主な活動内部のonCreate()メソッドで:

Configuration configuration = Components.configuration(); 
     configuration.driverConfiguration() 
       .setDriverClassName("org.neo4j.ogm.drivers.http.driver.HttpDriver") 
       .setURI("http://socialphonebook:[email protected]m:24789/db/data/"); 
SessionFactory sessionFactory = new SessionFactory("it.lucaspuerari.entities"); 
sessionFactory.openSession(); 

私はこのエラーを得た:

E: FATAL EXCEPTION: main 
    java.lang.NoSuchMethodError: No static method encodeBase64String([B)Ljava/lang/String; in class Lorg/apache/commons/codec/binary/Base64; or its super classes (declaration of 'org.apache.commons.codec.binary.Base64' appears in /system/framework/org.apache.http.legacy.boot.jar) 
     at org.neo4j.ogm.authentication.UsernamePasswordCredentials.<init>(UsernamePasswordCredentials.java:28) 
     at org.neo4j.ogm.config.DriverConfiguration.setCredentials(DriverConfiguration.java:72) 
     at org.neo4j.ogm.config.DriverConfiguration.setURI(DriverConfiguration.java:58) 

答えて

1

あなたあなたはAndroid上でOGMを使用しようとしていますが、OGMの背後にあるチームはAndroid環境でやってみませんか?ターゲットプラットフォームではありません。ご存知のように、Android JavaはOracle Javaとは異なります。

AndroidでOGMを使用する場合は、OGMをフォークしてAndroid Javaのテストを再構築して実行することをおすすめします。

encodeBase64Stringの方法がありません。Androidのライブラリは古く、org.apache.commons.codec.binary.Base64の代わりにandroid.util.Base64を使用する必要があります。

0

問題は、Androidには旧バージョンのorg.apache.commonsが付属しているためです。バージョン1.4からこのようなメソッドがサポートされています。私は同じ問題に直面し、の新しいバージョンをandroid.org.apache.commonsに再パッケージし、UsernamePasswordCredentialsクラスの特派員インポートを変更しました。

関連する問題