問題タブ [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.

0 投票する
1 に答える
253 参照

android - Kotlin オブジェクトを読み取る Java クラスで Lint がクラッシュする

Kotlin データ クラスがあります。

そして、次のように始まる Mapper クラス (Java の場合):

Lint を実行すると、Mapper クラスでクラッシュする

そして、多くの誤検知を含む lint レポートを生成します (例外の直後に機能していないだけだと思います)。

私はいくつかのことを試しました:

  • データクラスの代わりにクラスを使用
  • すべてを最新バージョンにアップグレードする (ツール、SDK など)
  • 関連オブジェクトの名前の変更
  • Kotlin クラスを Java クラスに置き換えます (この場合は機能します)。
  • マッパーを別のクラスの内部クラスにする (このケースは機能します)
  • 別のパッケージに移動する
  • すべてのメソッドにコメントを付けて、null を返すようにします (これは機能します)。基本的に、最初の 3 行がクラッシュの原因です
  • すべての newInterview.get を定数値に置き換えますが、クラッシュもします

明らかに、これらの解決策はどれも望ましいものではありませんが、この時点で私は非常に絶望的です. 私の 2 つの主なオプションは、Lint または Kotlin の使用を停止することです。

どんな提案でも大歓迎です。

0 投票する
1 に答える
221 参照

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:

何が見逃されていますか?うまくいかない理由はありますか?

前もって感謝します!