Invoke customs are only supported starting with android

Invoke-customs are only supported starting with Android O ( — min-api 26) — Solution

Apr 26, 2020 · 2 min read

Error:

The stack trace log is:

Reason:

Possibly, one of the reason for this Invoke-customs support error is using the Lambda functions/Expressions instead of inline callbacks as the Lambda functions/Expressions are introduced in Java 8 and application must be compatible with Java 8 to use them.

There might be many other reasons behind the error, the above one is something I understood. If you know anymore info/reasons regarding the error, let me know in comments I will update them in the article.

Solution -1 (Tested and Working):

Adding the below snippet in build.gradle(App level)

I have tested this solution and it resolves the error.

Solution 2 (Not Tested):

Dis a ble ‘Instant Run’.

Android Studio -> File -> Settings -> Build, Execution, Deployment -> Instant Run -> Disable checkbox

I’m unable to test this solution as option for Disabling Instant Run is not available in current Android Studio version (3.6.2). Instant Run is directly available with ‘Run App’ option.

That’s all about “Invoke-customs are only supported starting with Android O ( — min-api 26)” Error and its solution. Please do let me know Any info regarding this error I have missed in this article and any other solutions to resolve this error in comments. I will update them in the article.

Источник

Invoke-customs are only supported starting with Android O (—min-api 26) #6913

Comments

zishanj commented Jan 26, 2020 •

Compiling with latest version 2.11.1 in Android Studio 3.5.3 gives me this error:
Invoke-customs are only supported starting with Android O (—min-api 26)
I have also enabled Java 1.8 but this error still occurred. I have changed the version to 2.8.4 and it works.

The text was updated successfully, but these errors were encountered:

ojw28 commented Jan 27, 2020 •

I have also enabled Java 1.8 but this error still occurred.

It seems pretty likely that you didn’t do this correctly, given other answers to this question indicate that it’s solved by enabling Java 8 (e.g. this StackOverflow post). Our demo app targets minSdkVersion = 16 and doesn’t have this problem.

Are you certain that you enabled Java 8 in the correct place in your build.gradle file? Could you provide a small project somewhere that reproduces the problem?

zishanj commented Jan 27, 2020

This is what I have in app build.gradle file:

I am using Android Studio 3.5.3 with latest buildToolsVersion = ‘29.0.2’

ojw28 commented Jan 27, 2020

This is what I have in app build.gradle file:

Where abouts? Are you sure you added it in the correct place? You’ll need to share sufficient information for us to reproduce the problem (efficiently) for us to provide more guidance. A simple project that reproduces the problem is still the easiest way to do this.

zishanj commented Jan 27, 2020 •

@ojw28 Are you sure you have thoroughly tested the lib? Here is the complete content of my build.gradle file:

ojw28 commented Jan 27, 2020

Are you sure you have thoroughly tested the lib?

There are thousands of applications successfully using versions of ExoPlayer more recent than the one that introduced the Java 8 requirement, that also set minSdkVersion lower than 26.

Читайте также:  Создание заметок для android

The part of your build.gradle that enables Java 8 looks fine to me, but it remains the case that this is unlikely to be an ExoPlayer issue. Is it possible you have some other module that depends on ExoPlayer as well, and that Java 8 isn’t enabled in that module’s build.gradle file? If you check out the ExoPlayer demo app, are you able to build that successfully?

zishanj commented Jan 27, 2020

If I change the version to 2.8.4 then it compiles successfully. I have also commented out all the other dependencies in my gradle file but it throws error for 2.11.1.

ojw28 commented Jan 27, 2020

It’s not the case that 2.11.1 is completely broken when targeting minSdkVersion lower than 26, because other developers have this working, and because it also works for our own demo app.

This means that it’s not trivial for us to reproduce what you’re seeing. Actual reproduction steps (i.e. providing a simple sample project that reproduces the problem) are what we need to help you with this. Re-stating the same thing and asking if we tested the library isn’t going to help us to help you.

zishanj commented Jan 27, 2020

I have attached the zip file demo.zip. Here are details about the errors:

Default interface methods are only supported starting with Android N (—min-api 24): java.lang.String com.google.android.exoplayer2.ui.PlayerNotificationManager$MediaDescriptionAdapter.getCurrentSubText(com.google.android.exoplayer2.Player)

Invoke-customs are only supported starting with Android O (—min-api 26)

Источник

Error: Invoke-customs are only supported starting with Android O #6300

Comments

QiLiKing commented Nov 15, 2018

Cannot build realm with 5.8.0

Actual Results

Error: Invoke-customs are only supported starting with Android O (—min-api 26)

Steps & Code to Reproduce

Version of Realm and tooling

Realm version(s): ?
5.8.0

Realm Sync feature enabled: Yes/No

Android Studio version: ?
3.2.1

Android Build Tools version: ?
28

Gradle version: ?
3.2.1

Which Android version and device(s): ?
21

The text was updated successfully, but these errors were encountered:

QiLiKing commented Nov 15, 2018 •

It works when I change realm version to 5.7.0 or minSdkVersion 26.

realm-probot bot commented Nov 15, 2018

Hey — looks like you forgot to add a T:* label — could you please add one?

QiLiKing commented Nov 15, 2018

android <
compileOptions <
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
>
>

cmelchior commented Nov 15, 2018

Hmm, this shouldn’t be required. So even though it is a workaround we don’t want to require it.

bagus-setyawan commented Nov 25, 2018

hmm i get the error too with 5.8.0, i was downgrading to 5.7.0 and worked

jk77 commented Dec 11, 2018

Some more error details in case it helps:
Error: Invoke-customs are only supported starting with Android O (—min-api 26)
Caused by: com.android.tools.r8.utils.AbortException: Error: Invoke-customs are only supported starting with Android O (—min-api 26)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/mgr/.gradle/caches/transforms-1/files-1.1/realm-android-library-5.8.0.aar/c7f823427f262f54101fbb84c4c4ac4a/jars/classes.jar

jk77 commented Dec 11, 2018

Desugar currently doesn’t support MethodHandle.invoke or MethodHandle.invokeExact. If your source code or one of your module dependencies use one of these methods you need to specify minSdkVersion 26 or higher. Otherwise, you get the following error:

Dex: Error converting bytecode to dex:
Cause: signature-polymorphic method called without —min-sdk-version >= 26

In some cases, your module may not be using the invoke or invokeExact methods even when they’re included in a library dependency. So, to keep using that library with minSdkVersion 25 or lower, enable code shrinking to remove unused methods. If that doesn’t work, consider using an alternative library that doesn’t use the unsupported methods.

The workaround of enabling Java 1.8 in the project is working for us. I didn’t want to enable code shrinking in a debug build, but that might be another workaround based on the description above.

diegomontoya commented Dec 13, 2018

Can realm fix this 1.8 dependency? We want to use D8 but not R8 yet 1.8 requires R8 set to true in a chicken and egg loop.

jk77 commented Dec 13, 2018 •

diegomontoya I think you are mistaken about 1.8 requiring R8. The Android Studio 3.2 release notes say,

You can start using the preview version of R8 by including the following in your project’s gradle.properties file:
android.enableR8 = true

I have 1.8 enabled and only get the following warning if I specifically enable R8.

The option setting ‘android.enableR8=true’ is experimental and unsupported.
The current default is ‘false’
Consider disabling R8 by removing ‘android.enableR8=true’ from your gradle.properties before publishing your app.

diegomontoya commented Dec 15, 2018

@jk77 If you want to use R8, you need to at least use Android 3.3RC2 which has updated R8 in beta form.

Читайте также:  Рим ворлд для андроид

Run your probject in AS 3.3 and you will get desugaring requirements requires R8 to be enabled.

We have not tested using AS 3.2 as R8 in that build is not the latest.

Источник

Invoke-Customs поддерживаются только начиная с Android 0 —min-api 26 [закрыто]

прежде чем я использую версию сборки gradle 26, но после изменения buildtoolsversion на 27, как это изображение

ошибка: скриншот ошибки сборки gradle

  • 58 Не прикрепляйте скриншоты / изображения с кодом / сообщениями об ошибках. Разместите актуальный (соответствующий) код + сообщение об ошибке.
  • 1 У меня начались похожие проблемы, когда я преобразовал встроенные обратные вызовы в лямбда-функции. Об этом спрашивал Intellj. Но компилятору это не нравится.
  • 5 Очень жаль, что ОП не вернулся и не отметил ответ как правильный, хотя он есть. Фактически, все три, в зависимости от того, используете ли вы Java 7, 8 или 10. Суть в том, что вам нужно сообщить сборке, какой уровень языка вы используете. И да, заглавные буквы экрана практически не читаются на странице.
  • 1 Это не сработало для меня. Но добавление его в build.gradle модуля сработало. См. Комментарий Галлея от 19 декабря. Проект — github.com/jrasor/ftc_5197all2019; модуль — это TeamCode.
  • 1 Изображение вашего кода бесполезно. Кроме того, изображение вашего исключения тоже не поможет.

После нескольких часов борьбы я решил эту проблему, включив в приложение / build.gradle:

  • 3 Это даже похоже на тот случай, когда сборка gradle сообщает, что она не удалась в другом модуле. Если модуль A имеет объявление, а B нет, иногда для меня это не удается в A. После того, как я добавил его в B, он больше не терпит неудачу
  • 113 Разработчикам Android Studio необходимо изменить это описание ошибки. Этот ничего не говорит. Большое спасибо за то, что поделились своими выводами. Вы сэкономили время другим.
  • 3 После добавления библиотеки apachi commons lang в проект я столкнулся с этой ошибкой. Затем, после добавления кода выше, моя ошибка была исправлена. Спасибо.
  • 3 Спасибо, мужик, ты сэкономил мне часы борьбы.
  • 24 По-прежнему актуально в 2020 году.

Если compileOptions не работает, попробуйте это

Отключите «Мгновенный запуск».

Android Studio -> файл -> Настройки -> Сборка, выполнение, развертывание -> Мгновенный запуск -> Отключить флажок

  • 6 Это и только это сработало для меня. Очень раздражает, так как это похоже на ошибку в Android Studio. Мгновенный запуск — необходимая функция — кто-нибудь знает, как исправить эту ошибку и использовать мгновенный запуск?
  • 2 Instant Run — это большая головная боль. Я не могу сосчитать, сколько времени я потерял из-за этого не очень полезного для экономии времени инструмента. Я всегда отключал его во всех своих проектах. Я не думаю, что это так необходимо.
  • 2 Возникла та же проблема после обновления до Android Studio 3.4 и Gradle 5.1. Отключение Instant Run помогло! Спасибо
  • Это и только это сработало и для меня. Этот ответ спас мне жизнь. Голосуйте за вас.
  • 3 Эта опция недоступна в моей Android Studio. Подробности — (Android Studio 3.5.1 Build # AI-191.8026.42.35.5900203, построено 26 сентября 2019 г. JRE: 1.8.0_202-release-1483-b03 amd64 JVM: 64-разрядная серверная виртуальная машина OpenJDK от JetBrains sro Windows 10.0 )

В моем случае ошибка все еще существовала, потому что моя система использовала обновленную Java. Если вы используете Java 10, измените compileOptions:

  • 11 подождите . мы можем ориентироваться на Java 10 для разработки под Android?
  • 3 да @kassim версия, чтобы увидеть другие версии

Если у вас установлена ​​Java 7, включите следующий фрагмент кода в приложение на уровне :

Источник

Ошибка: Invoke-customs поддерживаются только начиная с Android O (—min-api 26)

Недавно я начал учиться программировать устройства Android через Android Studio. Мое первое приложение работало нормально, пока я не обновился до Android Studio 3.4 сегодня утром.

Я получаю следующие ошибки компиляции:

Вызвано: com.android.builder.dexing.DexArchiveBuilderException: не удалось обработать C:\Users\Technical.gradle\caches\transforms-2\files-2.1\4f3f8638c6a9f961dae488a0387efb6b\jars\classes.jar

Вызвано: com.android.builder.dexing.DexArchiveBuilderException: ошибка при дексинге.

Вызвано: com.android.tools.r8.CompilationFailedException: компиляция не завершена

Вызвано: com.android.tools.r8.utils.AbortException: ошибка: Invoke-customs поддерживаются только начиная с Android O (—min-api 26)

Читайте также:  Андроид приставка ttk tv

Есть ли способ вернуться к моей предыдущей версии Android Studio?

Если нет, то что изменилось в новой версии, что вызывает сбой в создании файла dex?

Я попытался добавить android.enableD8=true в gradle.properties , как было предложено здесь , но безуспешно.

EDIT #1:

Также связали добавление multiDexEnabled true к конфигурации по умолчанию в файле app build.gradle , но те же ошибки компиляции сохраняются.

Этот файл сборки в полном объеме.

14 ответов

до того, как я использую build version gradle 26, но после изменения buildtoolsversion на 27, как это изображение ошибка : ошибка сборки gradle скриншот

Я добавил минимум sdk 16, а цель sdk-29 . Моя версия android studio-это 3.5.2 . И эта проблема уже назревает : Invoke-customs поддерживаются только начиная с Android O (—min-api 26) для этой проблемы я не смог найти никакого решения . Пожалуйста, помогите мне выйти из этой проблемы.

Попробуйте добавить ниже к вашему app/build.gradle , чтобы ваша компиляция проекта Android была совместима с Java 8 .

Мне пришлось удалить useProguard true из конфигурации buildTypes .

Согласно документации minifyEnabled true достаточно, чтобы запутать ваш код с помощью R8.

Что имеет отношение к этой трассировке стека, так это эта строка:

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

в вашем Android Studio перейдите к build.gradle (Module:App) , а затем добавьте этот блок compileOptions<> в блок android<>

Если вы используете библиотеку Google Cloud, попробуйте уменьшить версию до 1.90

Я добавил ко всем модулям этот код:

Но ошибка никуда не делась. В моем случае некоторые из моих модулей использовали classpath ‘me.tatarka:gradle-retrolambda’, и это дало конфликт с этим:

Я получаю эту ошибку, когда пытаюсь запустить свое приложение react native, я вручную изменил версию на 2.5.6, но здесь ниже я получил другую ошибку: [Круговая ссылка:com.android.tools.r8.ApiLevelException: Invoke-customs ae поддерживается только начиная с Android O (—min-api 26)] FAILED FAILURE.

Я разрабатываю приложение Android в Android Studio с кодировкой Java. В этом приложении, когда пользователь нажимает кнопку, Файл excel сохраняется во внешнем хранилище с некоторыми данными. Для этого я использую Apache POI 4.1.0. Я добавил это в зависимости, но когда я запускаю приложение.

Добавьте следующее, Чтобы ваше приложение было скомпилировано компилятором java8 .

И отключить мгновенный запуск найденного по адресу

Preferences -> Build,Execution,Deployment -> Debugger -> Instant Run

Пожалуйста, добавьте эту строку в файл build.gradle .

У меня была та же проблема. Моя была вызвана . org.apache.commons:commons-lang . . На данный момент у меня нет полного сообщения об ошибке. Эта ошибка произошла только во время перестроения или чистой сборки.

Я решил изменить org.apache.commons:commons-text:1.8 в моем build.gradle на org.apache.commons:commons-text:1.6 .

Примечание — здесь было предложено отключить «Instant Run» в Android Studio. Эта функция была недоступна в моем Android Studio. Версия —

для меня решение с Java 8 начало работать только после того, как я удалил все тинги, связанные с ретроламбдой.

Для тех, кто еще столкнулся с этой проблемой, я столкнулся с этой проблемой после добавления зависимости от этой библиотеки Джексона:

Решение «compileOptions» выше исправило эту проблему для меня

для kotlin вы также должны добавить kotlinOptions:

Если вы пытаетесь запустить apk непосредственно из android studio, пожалуйста, старайтесь избегать включения

Прокомментируйте следующую строку.

Но вы можете использовать вышеприведенную строку при построении apk.

Похожие вопросы:

Моя кодовая база использует некоторый синтаксис Java 8, такой как lambdas, и прекрасно работает в течение самого долгого времени. Недавно мои инструментальные тесты в модуле перестали работать с.

У меня есть приложение Android, которое строится и работает нормально под Realm 5.7.0. Я только что обновил свой gradle до 5.8.0, и первоначальная синхронизация прошла нормально, но потом, когда я.

Я двигаюсь дальше Android O, и ниже приведена моя конфигурация: compileSdkVersion 26 buildToolsVersion 26.0.0 targetSdkVersion 26 com.android.support:appcompat-v7: 27.1.1.

до того, как я использую build version gradle 26, но после изменения buildtoolsversion на 27, как это изображение ошибка : ошибка сборки gradle скриншот

Я добавил минимум sdk 16, а цель sdk-29 . Моя версия android studio-это 3.5.2 . И эта проблема уже назревает : Invoke-customs поддерживаются только начиная с Android O (—min-api 26) для этой.

Я получаю эту ошибку, когда пытаюсь запустить свое приложение react native, я вручную изменил версию на 2.5.6, но здесь ниже я получил другую ошибку: [Круговая.

Я разрабатываю приложение Android в Android Studio с кодировкой Java. В этом приложении, когда пользователь нажимает кнопку, Файл excel сохраняется во внешнем хранилище с некоторыми данными. Для.

Источник

Оцените статью