我的代码库使用了诸如lambdas之类的Java 8语法,并且在最长的时间内一直运行良好。
最近,我在模块中执行的检测已停止处理臭名昭著的消息:
AGPBI:{“种类”:“错误”,“文本”:“仅支持调用习惯 从Android O(--min-api 26)开始,“源”:[{}],“工具”:“ D8”}
这是一个已知的问题(有many questions引用了它),但是我的compileOptions
中有Java 1.8:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
仅在已测试的测试(即androidTest)中显示此问题。单元测试和应用程序本身都很好。我已经从仪器化测试中注释掉了所有测试,但是问题仍然存在。
我的单元测试和Android测试具有相同的依赖关系。我转换为AndroidX测试,但问题仍然存在。
dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.google.android.gms:play-services-gcm:16.1.0'
androidTestImplementation 'org.mockito:mockito-core:2.27.0'
androidTestImplementation 'androidx.test:core:1.1.0'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test:rules:1.1.1'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.ext:truth:1.1.0'
androidTestImplementation 'com.google.truth:truth:0.42'
testImplementation 'org.mockito:mockito-core:2.27.0'
testImplementation 'androidx.test:core:1.1.0'
testImplementation 'androidx.test:runner:1.1.1'
testImplementation 'androidx.test:rules:1.1.1'
testImplementation 'androidx.test.ext:junit:1.1.0'
testImplementation 'androidx.test.ext:truth:1.1.0'
testImplementation 'com.google.truth:truth:0.42'
}
我正在使用最新的编译和目标版本(我也尝试过26和27)并构建工具。最低SDK版本是14,应该是。
compileSdkVersion 28
buildToolsVersion '29.0.0 rc3'
defaultConfig {
minSdkVersion 14
targetSdkVersion 28
}
答案 0 :(得分:1)
这是Android Studio 3.5 Beta中的错误。我提交了bug with the Android Studio team,并将通过Android Studio 3.5 beta 03生成工具解决。
答案 1 :(得分:1)
我有同样的问题。当项目和清理项目再次运行时。我的问题出在他的org.apache.commons:commons-text:library。 更改 实现'org.apache.commons:commons-text:1.8' 至 实施'org.apache.commons:commons-text:1.6'
答案 2 :(得分:0)
更新您的root build.gradle以使用最新的android sdk(可以使用26或28)。
android {
compileSdkVersion 28
flavorDimensions "default"
defaultConfig {
applicationId "com.example.myapplication"
minSdkVersion 25
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}