未捕获的翻译错误:com.android.dx.cf.code.SimException:在没有 --min-sdk-version >= 24 的情况下使用默认或静态接口方法

Posted

技术标签:

【中文标题】未捕获的翻译错误:com.android.dx.cf.code.SimException:在没有 --min-sdk-version >= 24 的情况下使用默认或静态接口方法【英文标题】:Uncaught translation error: com.android.dx.cf.code.SimException: default or static interface method used without --min-sdk-version >= 24 【发布时间】:2018-04-09 00:41:15 【问题描述】:

使用 sbt android:run 在模拟器中运行我的 android 应用程序时遇到以下异常:

Uncaught translation error: com.android.dx.cf.code.SimException: default or static interface method used without --min-sdk-version >= 24

不用说,我正在使用 Scala/SBT 并且对 android 领域是全新的。

我已经尝试了所有我能找到的解决方案,比如使用最新版本的 guava

"com.google.guava" % "guava" % "23.2-android"

或开启multidex

dexMulti in Android := true

这就是我的 build.sbt 的样子:

name := "Scala1"

version := "0.0.1"

scalaVersion := "2.12.3"

platformTarget := "android-26"

javacOptions in Compile ++= "-source" :: "1.8" :: "-target" :: "1.8" :: Nil

enablePlugins(AndroidApp)

dexMulti in Android := true

minSdkVersion in Android := "24"

libraryDependencies ++= Seq(
    "com.android.support" % "appcompat-v7" % "24.0.0",
    "com.google.guava" % "guava" % "23.2-android")

// libraryDependencies ++= Seq(
//     "com.android.support" % "appcompat-v7" % "24.0.0"
//     )

// Enable proguard and link it to the config file 'proguard-project.txt'
proguardOptions in Android ++= io.Source.fromFile("proguard-project.txt").getLines.toSeq

非常感谢任何形式的帮助。

【问题讨论】:

【参考方案1】:

必须将build.sbt 中的 java 源和目标版本都更改为 1.7:

javacOptions in Compile ++= "-source" :: "1.7" :: "-target" :: "1.7" :: Nil

它现在就像一个魅力。

【讨论】:

以上是关于未捕获的翻译错误:com.android.dx.cf.code.SimException:在没有 --min-sdk-version >= 24 的情况下使用默认或静态接口方法的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio - build.gradle 未捕获翻译错误 ExecutionException OutOfMemory 中的问题

未捕获的翻译错误:com.android.dx.cf.code.SimException:在没有 --min-sdk-version >= 24 的情况下使用默认或静态接口方法

谷歌翻译 API 中的问题

致命错误:未捕获的错误:未找到“Omnipay\Omnipay”类

Bootstrap 设置错误:未捕获 ReferenceError:未定义 jQuery 和未捕获错误:Bootstrap 的 JavaScript 需要 jQuery

错误:`未捕获(承诺中)类型错误:无法读取未定义的属性'doc'`