Hy
我创建了一个应用程序,使用匕首,房间,莫希,改装等.
它可以正常工作,直到我将这一行添加到Model类中:@JsonClass(generateAdapter = true)
在此之后,我得到这个错误:
执行org.jetbrains.Kotlin.gradle.internal.KaptExecution时出错
java.lang.reflect. ExceptionTargetException(无错误消息)
我不知道是什么问题,因为我的另一个应用程序是使用莫希,它的工作很好。
我添加了所有的莫希依赖项和插件
My gradle settings:
buildTypes {
all {
buildConfigField 'String', 'API_URL', "\"$apiurl\""
lintOptions {
abortOnError true
//ignoreWarnings true
fatal 'MissingTranslation', 'ExtraTranslation'
}
}
debug {
//applicationIdSuffix ".debug"
ext.enableCrashlytics = false
ext.alwaysUpdateBuildId = false
multiDexEnabled true
}
staged {
signingConfig signingConfigs.debug
//applicationIdSuffix ".staged"
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', getDefaultProguardFile('proguard-android-optimize.txt')
matchingFallbacks = ['debug']
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', getDefaultProguardFile('proguard-android-optimize.txt')
}
}
ApiModule:
@Provides
@Singleton
fun provideMoshi(): Moshi {
return Moshi.Builder()
.add(DateConverter())
.add(BigDecimalConverer())
.add(KotlinJsonAdapterFactory())
.build()
}
@Provides
@Singleton
fun provideAuthApi(@Named("base_url") url: String, moshi: Moshi): AuthApi {
var builder = OkHttpClient.Builder()
builder = BuildTypeInitializations.setupInterceptor(builder)
return Retrofit.Builder()
.baseUrl(url)
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.addConverterFactory(MoshiConverterFactory.create(moshi))
.client(builder.build())
.build()
.create(AuthApi::class.java)
}
字符串
4条答案
按热度按时间uklbhaso1#
最后,我解决了。我使用了1.8.x版本的莫希,当我更新到1.11.0时,错误就消失了
hsgswve42#
我有同样的问题,但对我来说,解决方案是添加
implementation "com.squareup.moshi:moshi-adapters:$1.12.0"
到build.gradle
文件tmb3ates3#
我遇到了一个类似的问题,当处理Room实体时,
InvocationTargetException
被kapt
抛出,说了一些关于不存在的类型的事情。经过长时间的调查,我发现包含实体的库也使用了莫希,并用@Json
注解标记了一个实体,但由于使用此库的应用程序没有导入莫希,kapt无法解决导致错误的类型。解决方案是通过“API”而不是“implementation”在库中导入莫希。或者通过“实现”在客户端应用程序中导入莫希。jvidinwx4#
对我来说,只有从kapt迁移到ksp才有帮助
这里如何升级https://developer.android.com/build/migrate-to-ksp#kts
将版本更改为ksp https://github.com/google/ksp/releases的最新发布版本
您可能还需要更新您的Kotlin插件版本,在这里您可以找到最新的https://kotlinlang.org/docs/releases.html#release-details