Cly*_*yde 10 lambda android dex java-8
我有一个在 Android Studio 或 Gradle 中构建时开始抛出此错误的项目:
com.android.tools.r8.ApiLevelException: MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O (--min-api 26)
Run Code Online (Sandbox Code Playgroud)
现在我假设它与 Java 8 特性的使用有关,可能是一个 lambda,但错误消息没有给出问题所在的线索——它可能是我的代码,也可能是一个库。
找出违规代码在哪里的最佳方法是什么?这是一个相当大的应用程序,包含多个模块和相当多的库。
在我的情况下,我尝试在运行 Api 版本 26 或更高版本的仪器测试中通过 mockk 模拟某些东西,只要以下问题没有解决,删除依赖是我唯一的解决方案:https : //github.com/mockk/mockk/issues /281
更新:问题似乎已解决,使用 mockk 1.10.0 版将解决此问题
一种方法是将您的 min api 设置为 26,以避免错误并构建 apk,然后检查应用程序的字节码(dexdump、baksmali 等)以查找 MethodHandle 类的任何用法。
| 归档时间: |
|
| 查看次数: |
8876 次 |
| 最近记录: |