Kotlin卡普失败 – 只看到Android API级别1的来源
我看到一些奇怪的行为,导致:app:kaptQaDebugKotlin
尝试升级到Android Gradle插件3.0时, :app:kaptQaDebugKotlin
失败。
- 用
@TargetApi(VERSION_CODES.KITKAT)
注解的方法失败,cannot find symbol
(VERSION_CODES.KITKAT
) - …但在与方法内联使用时发现
VERSION_CODES.KITKAT
- 找不到符号
DialogInterface.OnShowListener
(在API级别8中添加) - ..但找到
DialogInteface.OnClickListener
(在API级别1中添加) - 找不到符号
Application.ActivityLifecycleCallbacks
(在api level 14中添加) - 注意:Android Studio能够看到所有这些
cannot find symbol
类的来源(cmd + B
作品)
版本
- compileSdkVersion:
25
- buildTools:
26.0.2
- Kotlin版本:
1.1.51
- AGP:
3.0.0
- gradle包装:
4.3
- 支持lib:
24.2.1
(这也难以升级,但是我尝试了25.4.0
,仍然没有运气) - 匕首:
2.0.2
(卡在这个旧版本,不能升级不幸) - 使用AGP 3.0.0 java 8 desugar功能
- 使用
kotlin-kapt
插件。 自动值类正确生成。
任何想法发生了什么? 它看起来像kapt任务是以某种方式使用Android API级别1的来源,我不知道如何解决这个问题
Per @pentarex
错误来自外部库logback-android-classic,我不得不排除组:'com.google.android',模块:'android
implementation(libs.logbackAndroidClassic){ exclude group: 'com.google.android', module: 'android' }