【问题标题】:Build error when trying to Run basic activity尝试运行基本活动时生成错误
【发布时间】:2021-12-07 06:41:13
【问题描述】:

我正在学习 Android Studio / Kotlin 的第一天,并通过(官方?)tutorials 工作。

在空布局中添加了一些基本视图并解决了几个“编码练习”警告后,当我尝试在 USB 连接的平板电脑上运行该应用程序时,我收到一条构建失败消息。 (我还没有任何 Kotlin 编码。) 在这个阶段,我完全没有深度,找不到不超出我理解水平的解决方案。

错误是...

原因:java.lang.NoClassDefFoundError: kotlin/reflect/full/KClasses

原因:java.lang.ClassNotFoundException: kotlin.reflect.full.KClasses

如果还有其他值得分享的信息,恐怕我现在还不知道是什么。 关于我需要做什么或调查以解决构建失败的任何建议?

第一个 build.gradle 文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    ext.kotlin_version = "1.5.10"
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.2.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

第二个 build.gradle 文件:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.example.test04"
        minSdkVersion 19
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:2.0.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

【问题讨论】:

  • 您最近是否下载了 Android Studio,您的项目是您在 Android Studio 中使用 New Project 创建的吗?问题似乎是您的项目依赖于使用 Kotlin 反射的库,但 Kotlin 反射库不在您的项目依赖项中。如果您没有弄乱您的 build.gradle 文件或添加依赖项,我不确定这会发生什么。
  • 谢谢。是的,它是最近下载的 AS,并且该项目是从 New Project 创建的。我不知道做过你提到的任何一件事情。由于我还没有走多远,卸载重装AS最简单吗?
  • 您不需要卸载。尝试创建一个新项目并在不更改任何内容的情况下运行它。如果这不起作用,请将两个 build.gradle 文件的文本发布到您的项目中,并告诉我们 Android Studio 版本以及您正在使用的项目模板。
  • 谢谢。 Android Studio 版本是 4.2.2 我使用“空活动”作为起点。 (我假设这就是您所说的模板。)我在哪里可以找到 build.gradle 文件?
  • 在左上角列出项目文件的地方,展开 Gradle Scripts。应该有两个名为 build.gradle 的不同文件。

标签: android-studio kotlin build-error


【解决方案1】:

试试这些步骤。

  1. 在您的第一个 build.gradle 文件中将您的 Kotlin 版本从 "1.5.10" 更新到最新的 "1.5.31"。同时更新 Kotlin 插件:文件 -> 设置 -> 语言和框架 -> Kotlin,如果有新版本,将有一个 Install 按钮可供点击。然后重新启动 Android Studio 并运行您的项目,看看它是否可以工作。

  2. 如果这不起作用,您可以手动将缺少的反射库添加到您的项目中。我在您的依赖项中没有看到任何使用反射的东西,但也许我遗漏了一些东西。因此,将此行添加到您的第二个 build.gradle 文件的 dependencies 部分:

    implementation "org.jetbrains.kotlin:kotlin-reflect"

    然后单击工具栏右端附近的“使用 Gradle 文件同步项目”按钮(带有蓝色箭头图标的大象),然后再次尝试运行您的项目。

  3. 您使用的 Android 构建工具也已过时。我不确定它是否相关,但您也可以在第一个 build.gradle 文件中更新它。将 4.2.2 更改为 7.0.3 并再次单击 Gradle 同步按钮。 Android Studio 可能会抱怨您需要更新 Gradle 版本,因此如果它愿意为您更新,请单击“是”。

【讨论】:

    猜你喜欢
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 2014-03-27
    • 2021-09-22
    • 2018-05-14
    • 1970-01-01
    相关资源
    最近更新 更多