AndroidプロジェクトをAndroidXライブラリに移行しています。Butterknife 10.xはサポートが改善されているので、それを使用するのは良いことだと思います。私のプロジェクトはKotlin(1.3.30)で作成されています。
バターナイフのバージョンが8を超える場合は、次のようにJava8を使用する必要があります。
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
これは、minsdk> = 24の場合に最適です。そして、かなりの部分で、それはより低いバージョンでも機能します。ただし、KotlinがJava 8にコンパイルされると、一部の機能はminsdk <24では機能しません。私が次の例外を取得しているものなど。
java.lang.NoSuchMethodError: No static method hashCode(J)I in class Ljava/lang/Long; or its super classes (declaration of 'java.lang.Long' appears in /system/framework/core-libart.jar)
Long.hashCode()はJava 8の新しいAPIですが、古いAndroidバージョンではサポートされていません。この質問は、コンパイラにJava 6を使用するように指示することで同じ問題を解決しますが、AndroidXに必要なバターナイフ10.xではサポートされていません。
これはかなり一般的な問題だと思いますが、解決策は見つかりませんでした。どうすればこれを解決できますか?
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加