2016-04-19 5 views
0

Я пытаюсь использовать Neo4j OGM library 2.0.1 в своем приложении для Android.Neo4j OGM Library Конфигурация драйвера

Это мой 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

Ваш проблема в том, что вы пытаетесь использовать OGM на Android, но команда, стоящая за OGM, никогда не пробует ее в среде Android, а также Android isn Это целевая платформа. Как вы знаете, Android Java отличается от Oracle Java.

Если вы хотите использовать OGM на Android, я рекомендую вам разблокировать OGM и попытаться создать и запустить тестовые повторы Android Java.

Ваша проблема с отсутствием метода encodeBase64String, потому что библиотека Android устарела, и вы должны использовать android.util.Base64 вместо org.apache.commons.codec.binary.Base64.

0

Проблема связана с тем, что Android поставляется с более старыми версиями org.apache.commons. Из версии 1.4 поддерживается такой метод. У меня возникла та же проблема, и я решил переупаковать новую версию org.apache.commons в android.org.apache.commons и изменить импорт корреспонденции в классе UsernamePasswordCredentials.

Смежные вопросы