2017-03-29 18 views
2

java 8ラムダ式を使用
AndroidスタジオでJava JDKバージョンjdk1.8.0_77を使用しています。
私はgradleにjackOptionsを追加しました
シンプルリストを作成してメソッドフィルタを追加してソートしましたが、長い時間が経っても検索はできますが解決策はありません。
Android用のjava.lang.NoSuchMethodError:java.util.List.streamを使用するJava 8ラムダ式

Gradleの問題は、あなたが適切ストリームのメソッドを連鎖されません、あなたは、コードの下に見ることができるということです

android { 
compileSdkVersion 25 
buildToolsVersion "25.0.2" 
defaultConfig { 
    jackOptions { 
     enabled true 
    } 
    applicationId "com.mobisharnam.meme" 
    minSdkVersion 18 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 

} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
compileOptions { 

    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile 'com.android.support:appcompat-v7:25.1.0' 
compile 'com.android.support:design:25.1.0' 

MainActivity

import java.util.Arrays; 
import java.util.List; 
import java.util.stream.Stream; 

public class MainActivity extends AppCompatActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    List<String> list = 
      Arrays.asList("a1", "a2", "a3", "b1", "c2", "c1"); 


    list.stream(). 
      filter(s -> s.startsWith("c")). 
      sorted().forEach(s -> Log.d("TEST", s)); 

} 
} 
+0

[これをチェックする](http://stackoverflow.com/questions/122105/what-is-the-best-way-to-filter-a-java-collection) この回答を確認してください... –

答えて

1

ファイル:

list.stream(). 
      filter(s -> s.startsWith("c")). 
      sorted().forEach(s -> Log.d("TEST", s)); 
+0

同じエラー@ javaguy – Joy

+0

あなたはここで同様の問題を見ることができます:http://stackoverflow.com/questions/36652633/collection-nosuchmethoderror-when-caling-stream-method – developer

関連する問題