我遇到了一个问题,我想听听你的建议。
**给定:**新项目:
- 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
}
我希望它能帮助某人。
1条答案
按热度按时间bihw5rsg1#
由于问题很长,我发布了这个 “答案”:有关解决方案,请参阅问题的***更新***部分。