gradle Jetpack Compose + most basic buildSrc = build error:IllegalStateException:找不到内联方法

ibrsph3r  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(129)

我遇到了一个问题,我想听听你的建议。

**给定:**新项目:

  • app/build.gradle(仅显示相关块,省略其他块):
android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerVersion = project.kotlinVersion
        kotlinCompilerExtensionVersion compose_compiler_version
    }
}
  • buildSrc/build.gradle
repositories {
    google()
    mavenCentral()
}

dependencies {

}

**当:**我将implementation 'com.android.tools.build:gradle:7.3.1'依赖添加到buildSrc/build.gradle

repositories {
    google()
    mavenCentral()
}

dependencies {
    implementation 'com.android.tools.build:gradle:7.3.1'
}

**然后:**我得到错误:

Caused by: java.lang.IllegalStateException: couldn't find inline method Landroidx/lifecycle/viewmodel/compose/ViewModelKt;.viewModel$default(Landroidx/lifecycle/ViewModelStoreOwner;Ljava/lang/String;Landroidx/lifecycle/ViewModelProvider$Factory;Landroidx/lifecycle/viewmodel/CreationExtras;ILjava/lang/Object;)Landroidx/lifecycle/ViewModel;

我发现上面的错误是在Compose编译器版本没有设置的情况下出现的。在我的例子中,它是设置的。如果我从buildSrc/build.gradle中删除该依赖项,项目就会正常构建和运行。
如果你有什么主意我应该试试,请告诉我。

更新-已解决

通过测试,我收到了不同类型的错误。最后我设法解决了它,如下所示:在buildSrc/build.gradle中添加了:

dependencies {
    implementation 'com.android.tools.build:gradle:7.3.1'
    implementation "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10"
    implementation "com.squareup:javapoet:1.13.0" // required by hilt
}

在root build.gradle中,需要删除version属性,它看起来像这样:

plugins {
    id 'com.android.application' apply false
    id 'com.android.library' apply false
    id 'org.jetbrains.kotlin.android' apply false
}

我希望它能帮助某人。

bihw5rsg

bihw5rsg1#

由于问题很长,我发布了这个 “答案”:有关解决方案,请参阅问题的***更新***部分。

相关问题