以下是我的应用程序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
我认为这可能是他们对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(