I added a library project which is provided as a maven package to my Android app. However this library's one of methods causes an error on devices lower than Android 6.0 (above 7.0 devices there's no error).
Process: com.myapp.app.debug, PID: 2829
java.lang.NoSuchMethodError: java.io.BufferedReader.lines
at zemberek.core.text.TextIO.loadLinesFromResource(TextIO.java:103)
at zemberek.core.text.TextIO.loadLinesFromResource(TextIO.java:79)
at zemberek.core.turkish.hyphenation.TurkishSyllableExtractor.<clinit>(TurkishSyllableExtractor.java:34)
at zemberek.morphology.analysis.tr.PronunciationGuesser.<clinit>(PronunciationGuesser.java:104)
at zemberek.morphology.lexicon.tr.TurkishDictionaryLoader$TextLexiconProcessor.<init>(TurkishDictionaryLoader.java:302)
at zemberek.morphology.lexicon.tr.TurkishDictionaryLoader.load(TurkishDictionaryLoader.java:103)
at zemberek.morphology.lexicon.RootLexicon$Builder.addDictionaryLines(RootLexicon.java:247)
at com.myapp.app.LugatDosyaIslemleri.lambda$initNLPWordAnalyzer$0$myapp-app-LugatDosyaIslemleri(LugatDosyaIslemleri.java:82)
at com.myapp.app.LugatDosyaIslemleri$$ExternalSyntheticLambda0.run(D8$$SyntheticClass)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
I use Gradle version 7.3.3:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
My main build.gradle
file uses Android gradle plugin 7.2.2:
classpath 'com.android.tools.build:gradle:7.2.2'
In my app's build.gradle
file I declared to use Java 8:
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
and I added the dependency like:
implementation group: 'zemberek-nlp', name: 'zemberek-morphology', version: '0.17.1'
Although I use Java 8 in my project, how is it possible not finding BufferedReader's lines()
method and why does it only happen on devices below Android 6.0?
Thanks in advance.