我的目标是将KSP插件添加到gradle中,如问题标题中所述。
只需浏览每个//from quickstart
注解下面的行,您就会看到所有的错误来源。
为了添加依赖项,我引用了Kotlin KSP quickstart documentation。
现在,代码可能不是文档中的一个的精确副本,因为它不起作用,所以,我尝试了一些失败的更改,试图使它起作用。
构建.gradle(应用程序/模块)-
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
//from quickstart
id 'org.jetbrains.kotlin.jvm'
}
android {
compileSdk 32
defaultConfig {
applicationId "com.example.cryptile"
minSdk 26
targetSdk 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.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 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.4.2'
implementation 'androidx.navigation:navigation-ui-ktx:2.4.2'
implementation 'com.google.android.material:material:1.5.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
def room_version = "2.4.2"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
//what I want to implement
ksp "androidx.room:room-compiler:$room_version"
//from quickstart
implementation 'com.google.devtools.ksp:symbol-processing-api:1.6.10-1.0.2'
}
构建.gradle(项目)-
//from quickstart
buildscript {
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21'
}
}
plugins {
id 'com.android.application' version '7.1.3' apply false
id 'com.android.library' version '7.1.3' apply false
id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
//from quickstart
id 'org.jetbrains.kotlin.jvm' version '1.6.21' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
设置。梯度-
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "CRYPTILE"
include ':app'
任何帮助都是非常感谢的。
1条答案
按热度按时间elcex8rz1#
KSP指南未提及处理器的参考位置。请使用
META-INF
资源目录来参考处理器模块中的处理器:在此文件中,您引用
ProcessorProvider
:com.my.package.processor.MySymbolProcessorProvider
为了识别处理器提供程序并在以后示例化实际的处理器,这是一个重要的步骤。
如果您的依赖项设置不到位,请进一步阅读此处https://medium.com/@nikoladespotoski/hands-on-google-ksp-c0508d623863