我有一个 java + kotlin android 项目,可以在 Android Studio 中构建并运行良好。我现在正在设置 CI,需要从终端运行 Gradle。
但是当我运行./gradlew :app:lint
时我收到很多这样的错误:
symbol: class Context
location: class ConnectivityMonitor
e: /*******/LocalAppHistory.java:20: error: cannot find symbol
public boolean hasSeenOnboarding(Context context) {
^
我收到 Context, CognitoUserSession, Typeface, CognitoCachingCredentialsProvider...
相同类型的错误还有很多。
它仅适用于app
项目,没有其他模块。
app
gradle.build
文件:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "****"
minSdkVersion 21
targetSdkVersion 27
versionCode 48
versionName "1.3.0-dev"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
renderscriptTargetApi 18
renderscriptSupportModeEnabled true
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
}
}
testOptions {
unitTests.returnDefaultValues = true
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation project(':corentiumio')
implementation project(':uicomponents')
implementation project(':core')
implementation project(':localrepo')
implementation project(':cloudio')
implementation('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
transitive = true
}
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:animated-vector-drawable:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation 'com.amazonaws:aws-android-sdk-core:2.4.2'
implementation 'com.amazonaws:aws-android-sdk-ddb:2.2.22'
implementation 'com.amazonaws:aws-android-sdk-ddb-mapper:2.2.22'
implementation 'com.amazonaws:aws-android-sdk-cognito:2.4.2'
implementation 'com.amazonaws:aws-android-sdk-cognitoidentityprovider:2.4.2'
implementation 'com.google.android.gms:play-services-places:15.0.0'
implementation 'com.google.android.gms:play-services-maps:15.0.0'
implementation 'com.google.android.gms:play-services-location:15.0.0'
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
testImplementation 'commons-logging:commons-logging:1.2'
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.13.0'
testImplementation 'org.robolectric:robolectric:3.5.1'
androidTestImplementation 'com.google.code.findbugs:jsr305:3.0.2'
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
androidTestImplementation('com.android.support.test:runner:0.5') {
exclude group: 'com.android.support'
}
androidTestImplementation('com.android.support.test:rules:0.5') {
exclude group: 'com.android.support'
}
androidTestImplementation('com.android.support.test.espresso:espresso-intents:2.2.2') {
exclude group: 'com.android.support'
}
}
最佳答案
一旦我从 Kotlin 编译器切换 git 分支时遇到此错误,无法找到符号,我可能是错的。
我清除了缓存然后它就工作了,
rm -rf $HOME/.gradle/caches/
似乎在切换分支时缓存的先前分支文件造成了此问题。
如果你愿意,可以尝试一下。
关于java - Gradle android找不到符号上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50021255/