問題タブ [retrolambda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Kotlin オブジェクトを読み取る Java クラスで Lint がクラッシュする
Kotlin データ クラスがあります。
そして、次のように始まる Mapper クラス (Java の場合):
Lint を実行すると、Mapper クラスでクラッシュする
そして、多くの誤検知を含む lint レポートを生成します (例外の直後に機能していないだけだと思います)。
私はいくつかのことを試しました:
- データクラスの代わりにクラスを使用
- すべてを最新バージョンにアップグレードする (ツール、SDK など)
- 関連オブジェクトの名前の変更
- Kotlin クラスを Java クラスに置き換えます (この場合は機能します)。
- マッパーを別のクラスの内部クラスにする (このケースは機能します)
- 別のパッケージに移動する
- すべてのメソッドにコメントを付けて、null を返すようにします (これは機能します)。基本的に、最初の 3 行がクラッシュの原因です
- すべての newInterview.get を定数値に置き換えますが、クラッシュもします
明らかに、これらの解決策はどれも望ましいものではありませんが、この時点で私は非常に絶望的です. 私の 2 つの主なオプションは、Lint または Kotlin の使用を停止することです。
どんな提案でも大歓迎です。
android - Android6(API23)のレトロラムダを設定する方法
プロジェクトに Java8 サポートを追加したいと考えています。私が見つけた唯一の適切なソリューションは、retrolambda gradle プラグイン プロジェクトです。プロジェクトとモジュールの相対的な build.gradle ファイルを次に示します。
注: Android Studio 3 への移行を提案しないでください。機能しない理由を理解したいからです。
プロジェクト build.gradle
モジュール build.gradle
アプリ自体はとてもシンプルです。次のように、Java8 コードを使用したデフォルトのアクティビティが 1 つだけあります。
アプリを起動すると、次のエラーが表示されます。
致命的な例外: メイン プロセス: com.slesh.mtbbank、PID: 25338 java.lang.NoSuchMethodError: インターフェイス メソッドがありません stream()Ljava/util/stream/Stream; クラス Ljava/util/List 内。またはそのスーパー クラス ('java.util.List' の宣言は /system/framework/core-libart.jar に表示されます) は com.slesh.mtbbank.MainActivity.onCreate(MainActivity.java:19) で android.app.Activity .performCreate(Activity.java:6303) で android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
何が見逃されていますか?うまくいかない理由はありますか?
前もって感謝します!