Android Studio 3.1 にアップグレードしましたが、次のエラーが発生します。
デフォルトのインターフェース メソッドは、Android N (--min-api 24) 以降でのみサポートされます: void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner)
メッセージ{kind=ERROR、text=デフォルトのインターフェース メソッドは、Android N (--min-api 24) 以降でのみサポートされます: void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner)、sources=[不明なソース ファイル]、tool name=Optional.of(D8)}
これが私の Gradle 設定です:
compileSdkVersion 27
//buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
multiDexEnabled true
//...
}
ご覧のとおり、私がターゲットにしているのは 27 ですが、これはすでにエラーが発生している 24 よりも前です。これを修正するには具体的に何をすればよいのでしょうか? 1.8 Java に変更すると、多くの顧客を失うことになるのではないですか? Android Studio をアップグレードする前にこのエラーが発生しなかったのはなぜですか?
これは最近追加した LifecycleObserver クラスに関するものかどうかはわかりません。Kotlin で作成されていて、Java に変更しましたが、プロジェクトをクリーンアップした後でも同じエラーが発生します。
public class LifeCycleAwareObserver implements LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onAppBackgrounded() {
AnalyticsUtils.trackStartSession(true);
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onAppForegrounded() {
AnalyticsUtils.trackStartSession(false);
}
}
エラーの発生源を追跡して修正するにはどうすればよいでしょうか?
バージョンの依存関係は次のとおりです。
project.ext {
firebase_version = '12.0.0'
supportlib_version = '27.0.2'
room_version = '1.0.0'
espresso_version = '3.0.1'
archLifecycleVersion = '1.1.1'
}
ベストアンサー1
としてCommonsWareについて言及参考までに、android {...}
問題を解決するには、アプリ モジュール (アプリ レベル) の build.gradle のクロージャ内に以下を追加します。
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
...
}