使用匕首柄时出现以下错误
不支持的元数据版本。检查您的Kotlin版本是否>= 1.0:java.lang。IllegalStateException:不支持的元数据版本。检查您的Kotlin版本是否>= 1.0
请注意,我已经遵循了stackoverflow和其他文档Hilt Unsupported metadata version in Kotlin中的一些主题
Unsupported metadata version. Check that your Kotlin version is >= 1.0: java.lang.IllegalStateException的
https://github.com/google/dagger/issues/2379的
使用以下应用程序gradle配置
compileSdk 32
defaultConfig {
applicationId "com.test.plantdemo"
minSdk 21
targetSdk 32
versionCode 1
versionName "1.0"
}
字符串
Android插件
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'
}
型
应用程序级别依赖性
dependencies {
implementation "androidx.work:work-runtime-ktx:2.5.0"
kapt 'androidx.hilt:hilt-compiler:1.0.0'
implementation 'androidx.hilt:hilt-work:1.0.0'
kapt "com.google.dagger:hilt-android-compiler:2.35.1"
kapt "com.google.dagger:hilt-compiler:2.35.1"
implementation "com.google.dagger:hilt-android:2.35.1"
}
型
我使用的顶级依赖项
dependencies {
// other plugins...
//classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.0"
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.40'
}
型
顶级gradle插件
plugins {
id 'com.android.application' version '7.2.1' apply false
id 'com.android.library' version '7.2.1' apply false
id 'org.jetbrains.kotlin.android' version '1.7.0' apply false
id 'com.google.dagger.hilt.android' version '2.41' apply false
}
型
错误窗口显示以下错误
处理未完成。
有关详细信息,请参见上面的错误。任务“:app:kaptExecutionGKotlin”执行失败。执行org.jetbrains.kotlin.gradle.internal. KaptWithoutKotlinc Task $KaptExecutionWorkAction java.lang.reflect. aptcationTargetException时发生错误(无错误消息)
添加库后执行的步骤
Step1:Android应用类
@HiltAndroidApp
class PlantApplication: Application() {
}
型
第二步:模块类
@Module
@InstallIn(SingletonComponent::class)
object MainModule {
}
型
步骤3:查看模型
@HiltViewModel
class PlantListBaseViewModel @Inject constructor(): ViewModel() {
}
型
步骤4:片段
@AndroidEntryPoint
class PlantListBaseFragment : Fragment() {
}
型
2条答案
按热度按时间blmhpbnm1#
我建议使用最新的稳定版Dagger。我的版本是:
字符串
我希望它能起作用
更新:
如果你想知道原因,这里:
看起来Dagger需要将kotlin-metadata-jvm库更新到0.4.0,它支持从Kotlin 1.7阅读元数据,当前版本是0.3.0,您可以通过强制更新transitive dep来解决这个问题,可能直接取决于它,类似于这样:
型
你可以在这里找到:https://github.com/google/dagger/issues/3383
oyjwcjzk2#
看起来他们在刀柄2.50中对齐了匕首中所需的元数据版本-在我的情况下更新它起作用了(虽然在2.44中没有起作用)