minsdk <24でButterknife10.1.0でKotlinを使用する方法は?

Bart Oudkerk

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ではサポートされていません。

これはかなり一般的な問題だと思いますが、解決策は見つかりませんでした。どうすればこれを解決できますか?

Bart Oudkerk

この問題は、Kotlin 1.3.30の使用に関係しています(この問題を参照)。Kotlin 1.3.21を使用して、この問題を一時的に修正しました。D8の将来のバージョンでは、LongとCharの静的メソッドも脱糖される予定ですすでに修正されていますが、D8の安定版リリースに到達するまでに少し時間がかかります。その後、これはもう問題にはなりません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MinSDKがLの場合にAndroidMで許可を求める

分類Dev

minsdk16でvulkanサポートを追加

分類Dev

「minsdk、target sdk、およびcompile with」の違いは何ですか?アンドロイドで

分類Dev

Android携帯でGATTサーバーを起動します。どのminSdkが必要ですか?

分類Dev

minSdk!= deviceSdk

分類Dev

Android / Cordovaビルド:minSdkを変更する方法は?

分類Dev

Angularで1/0ではなくYes / Noを表示する方法

分類Dev

Android N-minSDKが14に設定されていても、下位のAPIでは実行できません

分類Dev

Pythonicの方法で1を0に、0を1に交換する

分類Dev

Androidエラーいいえ、minSdk(API 19)> deviceSdk(API 1)

分類Dev

いいえ、Android StudioのminSdk(API 15)> deviceSdk(API1)

分類Dev

[0:1]で文字列をfloatにハッシュする方法は?

分類Dev

NSJSONSerializationで0/1をfalse / trueと区別する方法は?

分類Dev

1の代わりに0で数字を逆にする方法は?

分類Dev

PHP:count()を使用して0ではなく1を取得する

分類Dev

KotlinのString配列のすべての要素を1行で印刷する方法は?

分類Dev

複数の列でlapply()またはifelse()を使用して、Yes == 1、else == 0にする方法は?

分類Dev

Android Wearデバイスの選択ボックスに「offlinelocalhost:4444 minSdk(API 20)> deviceSdk(API1)」と表示されます

分類Dev

Pythonでインデックスを使用して列に1と0を出力する方法は?

分類Dev

転置関数(t)を使用して、行を1日の時間(0から23)で転置する方法は?

分類Dev

minSdkバージョンは、Androidマニフェストファイルで宣言すべきではありません

分類Dev

kotlinでsortedWith()を使用する方法は?

分類Dev

kotlinでparseIntを使用する方法は?

分類Dev

Rで(0,1,0、0、1、1、1)を(0、0、0、1、0、1、2)に変換する

分類Dev

Javaで1ULLを使用する方法はありますか?

分類Dev

整数変数に1ではなく0x01を使用する利点は?

分類Dev

minSDKバージョンが原因で、Phonegapの作成コマンドとビルドコマンドが失敗する

分類Dev

XENでdom0と1つのdomUに同じIPを使用する方法

分類Dev

アップグレードして既存のGooglePlayストアアプリのminSdkを2.3から4に変更できますか

Related 関連記事

  1. 1

    MinSDKがLの場合にAndroidMで許可を求める

  2. 2

    minsdk16でvulkanサポートを追加

  3. 3

    「minsdk、target sdk、およびcompile with」の違いは何ですか?アンドロイドで

  4. 4

    Android携帯でGATTサーバーを起動します。どのminSdkが必要ですか?

  5. 5

    minSdk!= deviceSdk

  6. 6

    Android / Cordovaビルド:minSdkを変更する方法は?

  7. 7

    Angularで1/0ではなくYes / Noを表示する方法

  8. 8

    Android N-minSDKが14に設定されていても、下位のAPIでは実行できません

  9. 9

    Pythonicの方法で1を0に、0を1に交換する

  10. 10

    Androidエラーいいえ、minSdk(API 19)> deviceSdk(API 1)

  11. 11

    いいえ、Android StudioのminSdk(API 15)> deviceSdk(API1)

  12. 12

    [0:1]で文字列をfloatにハッシュする方法は?

  13. 13

    NSJSONSerializationで0/1をfalse / trueと区別する方法は?

  14. 14

    1の代わりに0で数字を逆にする方法は?

  15. 15

    PHP:count()を使用して0ではなく1を取得する

  16. 16

    KotlinのString配列のすべての要素を1行で印刷する方法は?

  17. 17

    複数の列でlapply()またはifelse()を使用して、Yes == 1、else == 0にする方法は?

  18. 18

    Android Wearデバイスの選択ボックスに「offlinelocalhost:4444 minSdk(API 20)> deviceSdk(API1)」と表示されます

  19. 19

    Pythonでインデックスを使用して列に1と0を出力する方法は?

  20. 20

    転置関数(t)を使用して、行を1日の時間(0から23)で転置する方法は?

  21. 21

    minSdkバージョンは、Androidマニフェストファイルで宣言すべきではありません

  22. 22

    kotlinでsortedWith()を使用する方法は?

  23. 23

    kotlinでparseIntを使用する方法は?

  24. 24

    Rで(0,1,0、0、1、1、1)を(0、0、0、1、0、1、2)に変換する

  25. 25

    Javaで1ULLを使用する方法はありますか?

  26. 26

    整数変数に1ではなく0x01を使用する利点は?

  27. 27

    minSDKバージョンが原因で、Phonegapの作成コマンドとビルドコマンドが失敗する

  28. 28

    XENでdom0と1つのdomUに同じIPを使用する方法

  29. 29

    アップグレードして既存のGooglePlayストアアプリのminSdkを2.3から4に変更できますか

ホットタグ

アーカイブ