我最近更新了我的kotlin和kotlin扩展插件,并在构建时遇到以下错误。我尝试使用gradle清理构建或同步项目,但没有任何工作
e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
Error:Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details
build.gradle如下
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
buildscript {
ext.kotlin_version = '1.0.0-beta-1038'
ext.anko_version = '0.7.2'
ext.android_support_version = '23.0.1'
ext.android_extensions_version = '1.0.0-beta-1038'
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.xxxxxxxxxx.app"
minSdkVersion 18
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
debug.java.srcDirs += 'build/generated/src/main/debug'
release.java.srcDirs += 'build/generated/src/main/release'
}
dexOptions {
preDexLibraries = false
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}
repositories {
jcenter()
mavenCentral()
jcenter { url "https://jitpack.io" }
}
dependencies {
provided fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'io.realm:realm-android:0.83.0'
compile 'com.github.PhilJay:MPAndroidChart:v2.1.3'
compile 'com.braintreepayments.api:braintree:1.+'
compile('com.mikepenz:materialdrawer:4.4.1@aar') {
transitive = true
}
compile 'com.mikepenz:google-material-typeface:1.2.0.1@aar'
compile project(':temperature')
compile project(':heart')
compile project(':lungs')
compile "com.android.support:cardview-v7:$android_support_version"
compile 'com.github.wendykierp:JTransforms:3.1'
compile 'fuel:fuel:0.57'
compile "org.jetbrains.anko:anko-sdk15:$anko_version"
compile "org.jetbrains.anko:anko-support-v4:$anko_version"
compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
compile 'com.google.android.gms:play-services:8.1.0'
compile "com.android.support:recyclerview-v7:$android_support_version"
compile "com.android.support:appcompat-v7:$android_support_version"
compile "com.android.support:support-v4:$android_support_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
有人可以指出这有什么问题吗?
由于
答案 0 :(得分:10)
我通过在终端中构建项目然后在intellij(或android studio)中运行app来解决了这个问题。
gradle clean build - >在ide中运行app
答案 1 :(得分:4)
对我来说,解决方案是在Android Studio中打开Gradle Console窗口并使用StackTrace运行构建。
然后,通过阅读,我意识到在Kotlin做一些事情的新事物需要我的代码改变,但正常的Gradle构建并没有抓住这些问题。
将视图投射到TextView或其他任何情况下,这些都不再相关,并且必须更改为findVieById格式。 e.g:
val textView = snackbarView.findViewById(R.id.snackbar_text) as TextView
必须改为
val textView = snackbarView.findViewById<TextView>(R.id.snackbar_text)
答案 2 :(得分:0)
对于我最近正在从事的项目,我遇到的是相同类型的错误,该错误是由于调用不再存在的静态方法引起的。
MessageService.java
public class MessageService extends FirebaseMessagingService {
/*
This method was commented out
private static String GetReviewTopic(String userId)
{
return "/topics/"+userId+"/review";
}
*/
}
AppActivity.java
@Override
public void onCreate() {
...
/*
No complication error was caused despite the
method not being defined.
*/
MessageService.GetReviewTopic(currentUser);
...
}
不幸的是,Android Studio并未针对丢失的静态方法报告“语法错误”,也没有任何有意义的复杂错误可以帮助我追踪问题。
希望这个答案能够节省一些人的故障排除时间!