当前位置: 首页 > 知识库问答 >
问题:

Android Studio 3.1默认或静态接口方法使用时不使用--min-sdk-version>=24

方坚壁
2023-03-14

以下是我的应用程序build.gradle文件内容:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
compileSdkVersion 27
    defaultConfig {
        applicationId "com.sample"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 11
        versionName "2.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        multiDexEnabled true
    }
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "android.arch.lifecycle:common-java8:1.1.1"
implementation "android.arch.persistence.room:runtime:1.0.0"
implementation "android.arch.persistence.room:rxjava2:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
android.enableD8=true

共有1个答案

卫烨
2023-03-14

我认为这可能是他们对Java8和MIN-API的“特殊”实现的问题。android.arch.lifecycle:common-java8:1.1.1

尝试“普通”annotationProcessorandroid.arch.lifecycle:compiler:1.1.1

我知道这不一样,但它可能会暴露一个bug或库的一个限制。或者您的grade文件有一些旧的选项?

来源:https://developer.android.com/topic/libraries/architecture/adding-components.html

 类似资料:
  • 编译libgdx游戏时,我从android studio收到以下错误: 我不明白,因为我不使用默认的接口方法。我的代码用JDK1编译得很好。7.此处报告的错误与以下代码有关: 这里没有默认方法。请注意,如果我删除此重写,并在调用站点向MiscItem添加强制转换,编译器报告将转到下一个错误(同类),因为我在许多地方使用了此模式。我使用gradle,并在我的build.gradle文件中包含以下内容

  • 问题内容: 当搜寻通过Java语言规范来回答这个问题),我学到的是 在初始化类之前,必须先初始化其直接超类, 但不初始化由该类实现的接口。 同样,在初始化接口之前,不会初始化接口的超级接口。 出于我自己的好奇心,我尝试了一下,并且未如预期的那样对接口进行了初始化。 该程序打印 但是,如果接口声明了一个方法,则确实会发生初始化。考虑给定的接口 然后上面的相同程序将打印 换句话说,接口的字段已初始化(

  • 当我注意到现在可以在接口中定义静态和默认方法时,我正在通过接口学习。 请解释两者的区别,如果有一个我们什么时候会使用它的例子,那就好了。界面上有点混乱。

  • 我在想什么时候使用静态方法?假设我有一个类有几个getter和setter,一两个方法,并且我希望这些方法只能在类的实例对象上调用。这是否意味着我应该使用静态方法? 示例: ...或: 我很困惑!

  • 我正在做一个简单的计算器分配,我需要在代码的实现中使用一个Java接口。我已经将接口设置如下: 然后我有我的“添加”类,如下所示: 然后,我尝试从我的客户端进程调用这个Add.toString()方法,如下所示: 其中mOut是一个ActivityInterface。我目前的问题是toString在Android Studio中用红色下划线,错误是“无法从静态上下文引用非静态方法toString(