Tag: kapt

如何在Enum常量中实现抽象函数

我试图实现的是一个简单的模式,我正在使用Java,并应根据文档在Kotlin中可行。 我只是想用一些实现相同抽象函数的常量定义来声明一个枚举类。 我的问题是,我无法设法让我的代码编译。 我总是得到相同的错误: modifier abstract not allowed here 这里是代码: enum class Program { HOME { override fun readableName(context: Context): String { return context.getString(R.string.program_home) } }, WEEKEND { override fun readableName(context: Context): String { return context.getString(R.string.program_weekend) } }, SHOPPING { override fun readableName(context: Context): String { return context.getString(R.string.program_shopping) } }; abstract fun readableName(context: Context): String […]

配置kapt来处理lombok注释

这是这些问题的后续行动: Kotlin没有看到Java Lombok访问器? kapt是否支持maapt? kapt似乎已经从现在开始发展,现在它甚至在Maven中得到了支持。 我正在尝试这个(注意配置中的Lombok注释处理器): <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>${kotlin.version}</version> <executions> <execution> <id>kapt</id> <goals> <goal>kapt</goal> </goals> <configuration> <sourceDirs> <sourceDir>${project.basedir}/src/main/java</sourceDir> <sourceDir>${project.basedir}/src/main/kotlin</sourceDir> </sourceDirs> <annotationProcessors> <annotationProcessor>lombok.core.AnnotationProcessor</annotationProcessor> </annotationProcessors> </configuration> </execution> … </plugin> 但是它似乎仍然没有任何效果,而Lombok @Getter仍然被忽略,正如相关问题所描述的那样。 有什么可以做的吗?

kapt是否支持maapt?

是否有可能在基于maven的项目中运行kapt(kotlin注释处理)? 如果是的话,我如何将kapt集成到maven构建系统中?

使用kapt和gradle时,无法调试注释处理器

我正在构建一个注释处理器,最近我使用kotlin-kapt插件将默认的annotationProcessor类型转换为kapt。 我正在使用该命令调试我的处理器 ./gradlew –no-daemon -Dorg.gradle.debug=true :app:clean :app:compileDebugJavaWithJavac (完整的说明在这里: https : //stackoverflow.com/a/42488641/502463 ) 然后运行远程调试配置。 当我使用annotationProcessor时,我可以打断点,并且很好的调试。 与kapt,我的处理器运行,但我无法调试它。 没有断点被触发。 我的kotlin版本是1.1.2-3

kapt构建失败与匕首Android处理器

我试图用Kotlin注解处理工具 (kapt)在我的项目中包含Dagger Android处理器( 在此记录)。 我已经在我的build.gradle文件中包含了适当的依赖关系: apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.app" minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } sourceSets { main.java.srcDirs += 'src/main/kotlin' } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { […]

:运行单元测试时出现app:kaptDebugKotlin错误

我一直在尝试Kotlin和实施一个应用程序。 目前运行该应用程序工作正常,但我不能运行单元测试。 Android Studio:2.3.3 这是我的Gradle设置: 的build.gradle(项目) buildscript { ext.kotlin_version = '1.1.3' repositories { jcenter() maven { url 'https://jitpack.io' } } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" classpath "io.realm:realm-gradle-plugin:3.5.0" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() […]

Kotlin:NoClassDefFoundError – Android Studio显示不应该在那里的类

我刚把我的小型Android项目更新到Kotlin。 结果我用kapt替换了annotationProcessor ,它在我的build.gradle文件中被使用了。 我的问题是,虽然我不使用番石榴Android Studio是让我例如导入com.google.common.base.Preconditions和使用它,但是当涉及到启动应用NoClassDefFoundError引发。 所以我认为番石榴不是用我的项目编译(),这就是为什么我得到这个错误。 但是,那么为什么Android Studio允许我使用它?

Kotlin kapt,gradle和ebean插件构建失败

build.gradle文件看起来像: group 'styleru-ikomarov' version '0.0.1-SNAPSHOT' buildscript { ext.kotlin_version = '1.1.3' ext.html_version = "0.6.2" ext.ktor_version = "0.3.3" ext.squash_version = "0.2.2" ext.gson_version = "2.8.1" ext.ehcache_version = "3.0.0.m4" ext.jodatime_version = "2.3" ext.slf4j_version = "1.7.5" ext.ebean_version = "10.3.1" ext.ebean_plugin_version = "10.2.2" ext.ebean_querybean_generator = "10.1.2" ext.mysql_version = "5.1.6" repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "io.ebean:ebean-gradle-plugin:$ebean_plugin_version" classpath "mysql:mysql-connector-java:$mysql_version" […]

Kotlin注释处理器+ AutoService

我有以下问题: – 创建了一些模块,实现了一个Component类,它用@AutoService(Component::class)注释 – 我的Android应用程序使用ServiceLoader来检索这些类。 但由于某种原因, kapt不会生成META-INF/services/…的文件META-INF/services/… 我的模块gradle.file: apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' android { compileSdkVersion 26 buildToolsVersion "26.0.2" defaultConfig { minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } […]

使用“kotlin-kapt”插件,Android Studio不提供有关Dagger 2的具体错误

我用Dagger 2使用Kotlin。问题是,当我在执行Dagger的时候犯了错误(比如错过@Inject for class constraint),IDE并没有具体显示错误在哪里。 Insead编译器的错误总是一样的: Execution failed for task ':app:kaptDebugKotlin'. Internal compiler error. See log for more details 有故意错误的类(注释@Inject): class LoginPresenter //@Inject constructor(private val request: LoginRequest) 项目build.gradle文件: buildscript { ext.kotlin_version = '1.1.4-3' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { jcenter() } } task clean(type: Delete) […]