尝试运行基本活动时生成错误

Posted

技术标签:

【中文标题】尝试运行基本活动时生成错误【英文标题】: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 的不同文件。 【参考方案1】:

试试这些步骤。

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

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

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

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

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

【讨论】:

以上是关于尝试运行基本活动时生成错误的主要内容,如果未能解决你的问题,请参考以下文章

函数调用时的 C 到 C++ 错误

Appium给出'错误:运行测试时意图匹配多个活动

VS 数据库项目在运行时生成了错误的脚本

运行时错误'1004':不存在“活动”字段

错误类型 3:Eclipse 中不存在活动类 …

无法生成 ngrokpanic:运行时错误:无效的内存地址或 nil 指针取消引用