2016-08-11 7 views
8

Java 8の機能を使用する場合は、非アンドロイド・モジュールでcall requires api level Xを取得しています。 これを削除する方法。 注釈を抑制すると、AndroidはすべてのJava 7言語機能とプラットフォームのバージョンによって異なりJavaの8言語機能のサブセットをサポートしてくれ非アンドロイド・モジュールで呼び出しにAPIレベルが必要

+1

解決しましたか? https://code.google.com/p/android/issues/detail?id=78382は関連性があります。 – Giszmo

+0

あなたのグラブルファイルとコードを投稿して、SOメンバが同じ動作を再現できるようにします。[最小、完全、および検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve) JDKのバージョンでは、バグレポート(Giszmoによるリンク)は魅力的だと思われます。 –

+0

コードとグラデルを投稿してください – NishchalAndroid

答えて

0

https://developer.android.com/guide/platform/j8-jack.html

に正しい方法でいないようです。

Java 8言語機能のサポートには、Jackという新しいコンパイラが必要です。 JackはAndroid Studio 2.1以降でのみサポートされています。

AndroidはすべてのJava 8言語機能をサポートしていません。 (APIレベル23と下部でも使用可能)

  • デフォルトおよび静的インタフェースメソッド
  • ラムダ式
  • :アンドロイド7.0 をターゲットアプリケーション(APIレベル24)を開発する場合しかし、以下の機能が利用可能です(また、APIレベル23で利用可能と下部)(また、APIレベル23で利用可能と下部)反復アノテーション
  • メソッド参照
  • 型注釈

...私が強調しています。

+0

Ups、今あなたはAndroidモジュールについて尋ねていないことを理解しました。それらを使用しますか?それらをAndroidアプリケーションに統合する場合は、Android APIを呼び出さなくても上記のルールに従わなければなりませんが、Android OS JVMによって実行されます。 Java 8をサポートする通常の本格的なJVM(ホストOS上で動作するJUnitテストなど)でのみ使用する場合(コードが.apkに収まらないように)、緊急時の解決策としてlintをオフにしてください。 AndroidコードでJava8を使用していないことを認識するのに十分なインテリジェントではないはずです。 – Ped7g

+0

ここにOPはありません。私のプロジェクトでは、最小API 14のアプリケーションで使用するライブラリモジュールで、「コールにAPIレベル9(現在の最小値は1)が必要です」という文句があります。 – Giszmo

+0

@Giszmo Java8はどのように関係していますか?特定のAPI呼び出しが問題になっている場合は、それは私が思うような別の糸くずチェックです。あなたのビルドプロセスが「現在のminSdk = 1」にあると思う理由:私は、google、または投稿の詳細(ビルドスクリプト、プロジェクト定義など)に関する質問を知らない。しかし、私はJava8の機能にあなたの問題の接続が表示されません。 – Ped7g

関連する問題