Проблема подключения com.vk.api:sdk в android studio
Для добавления VK Java SDK, в gradle(:app) прописал:
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/INDEX.LIST'
exclude 'META-INF/io.netty.versions.properties'
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
dependencies {
implementation 'com.vk.api:sdk:1.0.6'
}
Пробовал обновлять gradle, гуглил, ставил более раннюю версию api, добавлял следующие строчки
implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.11.2'
implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.2'
implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.2'
Но всё равно выскакивает ошибка:
MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O (--min-api 26)
Stack trace:
com.android.tools.r8.errors.a: MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O (--min-api 26)
Android api 26 не имеется. VK Android SDK не использую, потому что уже написал проект на Java SDK в inteliJ. Можно ли как-то решить эту проблему?
Ответы (1 шт):
Проблема была в том, что vk api написан с использованием Java 8, а Android работает на Java 7 из-за чего некоторые методы не работали. Писать свою реализацию я не стал, а решил воспользоваться этой библиотекой: https://github.com/yvasyliev/java-vk-bots-long-poll-api Она довольно проста и похожа на оригинальную, поэтому переписывать пришлось не много.
Для запуска на андроид потребовалось только подключить библиотеку и добавить в Gradle пару строчек
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
Удачи!
