Установите и интегрируйте Apache OpenNLP в Android Studio.

Я разрабатываю приложение ChatBot для Android, для которого я хотел использовать библиотеку Apache OpenNLP. Я следовал этому руководству, чтобы загрузить и использовать OpenNLP. После загрузки zip-файлов мне сказали добавить 2 файла jar в Android Studio в качестве библиотек, что я и сделал. Затем я добавил параметры компиляции в файл build.gradle каталога модулей. Когда я попытался запустить приложение, я получил ошибку Gradle Build, как показано ниже.

> Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the 'java' gradle plugin in a library submodule add 
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
to that submodule's build.gradle file.

Затем я добавил следующие строки в свой файл gradle

compileOptions{
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

После этого, когда я пытаюсь запустить код. Я получаю эту неудачную синхронизацию Gradle

 Error:Jack is required to support java 8 language features. Either enable Jack or remove sourceCompatibility JavaVersion.VERSION_1_8.
Error:Jack is required to support java 8 language features. Either enable Jack or remove sourceCompatibility JavaVersion.VERSION_1_8.

Затем я добавляю следующее в свой файл gradle внутри блока defaultConfig

jackOptions{
            enabled true
        }

После этого, когда я пытаюсь запустить свое приложение, я получаю максимальное количество ошибок

Error:Lambda coming from jar file need their interfaces on the classpath to be compiled, unknown interfaces are java.io.FileFilter
Error:Lambda coming from jar file need their interfaces on the classpath to be compiled, unknown interfaces are java.io.FileFilter
Error:Lambda coming from jar file need their interfaces on the classpath to be compiled, unknown interfaces are java.io.FileFilter
Error:Default method void updateAdaptiveData(java.lang.String[] tokens, java.lang.String[] outcomes) not supported in Android API level less than 24
Error:Default method void clearAdaptiveData() not supported in Android API level less than 24
Error:Default method void reset() not supported in Android API level less than 24
Error:Default method void close() not supported in Android API level less than 24
Error:Execution failed for task ':app:transformClassesWithPreJackPackagedLibrariesForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.core.JackToolchain$ToolchainException: Jack compilation exception 

Может ли кто-нибудь сказать мне, что делать? Я хотел бы иметь возможность использовать методы OpenNLP в своем приложении. Пробовал чистить и восстанавливать, но тщетно.


person VaM999    schedule 01.05.2017    source источник


Ответы (1)


Изменения ниже градиента отлично сработали для меня. Вы можете попробовать.

dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
}

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_7
          targetCompatibility JavaVersion.VERSION_1_7
     }
 }

dependencies {
      compile 'org.apache.opennlp:opennlp:1.6.0'
}
person user2867425    schedule 14.09.2017