Java 1.8 및 Android 7 (API 레벨 24)의 Android Studio 2.2.3을 사용하여 "새로운"Java 8 기능 Stream
을 테스트하는 프로젝트를 설정하기 만하면됩니다. 여기Android 6.0에서 Java 8 Stream API를 사용하는 방법
내 Gradle을 파일 :
다음 코드apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.radinator.myproject"
minSdkVersion 24
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
}
:
import java.util.stream.*;
public class MainActivity extens Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainactivity);
}
void foo(){
List<String> myList = Arrays.asList("one", "two", "three", "four", "five", "six");
myList.stream()
.filter(s -> s.length() > 0)
.collect(Collectors.toList())
}
}
안드로이드 스튜디오 라인 말해 myList.stream()...
을 강조 "Usage of API documented as @since 1.8+
는"Gradle을 모든 것을 컴파일 그런데 왜 나는이 메시지를받을 수 있나요? 이 기능은 Java 8에서 소개되었으며 Android API Leve 24 이상에서 사용할 수 있다고 생각했습니다.
어떻게 이런 혼란을 해결할 수 있습니까? 사전
아마도 이것이 (모듈 수준을 설정하는 데) 도움이 될 수 있습니다. http://stackoverflow.com/questions/37787079/intellij-unable-to-use-newer-java-8-classes-error-usage-of-api -documented – Kelo
android studio가이 옵션을 가지고 있다면 그것을 바꿨습니다. 안타깝게도 그런 옵션은 없습니다 (SDK 버전 만 컴파일하고 도구 버전을 빌드하십시오). – Radinator
API 레벨 24 = Nougat, Android 7.0-7.1.1, API 레벨 23 = 마쉬 멜로우, 안드로이드 6.0 (.1) – Sartorius