Tag: kapt

创建XML文件时出现卡顿exception

我正在Android Studio上的Kotlin工作。 该项目编译和工作完美,但后来当我尝试创建一个新的XML文件,我不断得到一个kaptexception“注释处理exception”。 我试图创建XML文件,右键单击res文件夹 – >新建 – >布局资源文件,我也尝试右键单击res文件夹 – >新建 – > XML – >布局XML文件。 这是我的完整项目gradle: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = ‘1.1.2-5’ repositories { jcenter() google() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.1’ classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” // NOTE: Do not place your application dependencies here; […]

使用Android Studio 3.0 beta7版本时,Kotlin注释处理器会导致编译时错误

我正在使用Android Studio 3.0 Beta 7编译Android项目,使用Kotlin 1.4-2和Room Persistence Library 1.0.0-beta1。 这是我的Gradle文件的一部分,我添加了房间依赖关系: implementation “android.arch.persistence.room:runtime:1.0.0-beta1” kapt “android.arch.persistence.room:compiler:1.0.0-beta1” 编译时,我收到以下错误: 警告:警告:注释处理器“android.arch.persistence.room.RoomProcessor”支持的源版本“RELEASE_7”小于“源1.8” 添加stacktrace /调试标志来编译选项后,这是我得到的错误: 错误:org.jetbrains.kotlin.kapt3.diagnostic.KaptError:批注处理时出错 10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter]失败:生成失败,出现exception。 10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] *什么错误:10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter]执行失败的任务’:app:kaptDebugKotlin’。 10:08:03.727 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]>内部编译器错误。 10:08:03.728 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 10:08:03.728 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Exception is:10:08 :03.728 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException:任务’:app:kaptDebugKotlin’的执行失败。 10:08:03.728 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter]在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)10:08:03.728 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] […]

卡普gradle任务例外:类转换exception

执行任务’:app:kaptSomethingDebugKotlin’失败。 我已经重构了一些我的课程,我已经添加了一些kotlin类和function纯粹的类。 当我尝试编译项目,这些奇怪的事情发生,没有任何exception堆栈跟踪帮助我。 看来这个问题是由于Kotlin的java组合 Unable to receive command from client socket connection from /127.0.0.1:5573 to /127.0.0.1:13020. Discarding connection. org.gradle.internal.remote.internal.MessageIOException: Could not read message from ‘/127.0.0.1:13020’. at org.gradle.internal.remote.internal.inet.SocketConnection.receive(SocketConnectin.java:92) at org.gradle.launcher.daemon.server.SynchronizedDispatchConnection.receive(SynchronizedDispatchConnection.java:68) at org.gradle.launcher.daemon.server.DefaultDaemonConnection$1.run(DefaultDaemonConnection.java:63) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalArgumentException: Unexpected type tag 67 found. at org.gradle.internal.serialize.DefaultSerializerRegistry$TaggedTypeSerializer.read(DefaultSerializerRegistry.java:142) at org.gradle.internal.serialize.Serializers$StatefulSerializerAdapter$1.read(Serializers.java:36) […]

Kotlin + Dagger注入问题取决于设备的Android版本/ SDK(?)

上周,在我现在的Kotlin MVP项目中实施Dagger的时候,我正在使用KitKat 4.4.2在老式手机上进行测试(因为主要手机的维护,它仍然支持所有主要的function和东西)。 所以那一周我遇到了一些典型的问题,而不是一些不寻常的事情,通过调查提供的错误,或多或少地快速解决问题 终于,代码编译,当前的项目版本建成没有问题,没有运行与UI交互KitKat的重大错误。 但是,当我从维修中心拿走了带有Nougat 7.1.2的主电话并启动了应用程序时,我陷入了奇怪的DI相关问题。 之后,我也在mate的Marshmallow 6.0上推出了应用程序,并且又抓了一个,完全一样。 这个问题简单描述如下: 应用程序(成功)启动; 我能够操作通过上下文和fragmentManager注入提供的ViewPager / DrawerLayout / etc uifunction; 所有的服务也可以按照预期的方式进行注射。 当我抽动Activity的Presenter时,应用程序崩溃。 而现在最有趣的部分,这让我疯狂:所有可访问的类,不带来任何问题,通过构造注入注入。 但是,使用字段注入注入的Presenter实例在需要时不会被初始化 。 当然,我试图不使用lateinit修饰符,并注入它像@JvmField可空字段或没有它:结果是相同的 – 它根本不被注入。 由于问题与Activity有关,我有“自然约束”不使用主要构造函数注入。 这是一个例外情况,除了第一个字符串外,对我来说不是很有帮助。 kotlin.UninitializedPropertyAccessException: lateinit property presenter has not been initialized at .ui.common.view.BaseViewActivity.getPresenter(BaseViewActivity.kt:14) at .ui.main.view.MainActivity.onPlaceTypeClick(MainActivity.kt:143) at .ui.types.nearby.view.NearbyPlaceTypeItemViewHolder$bind$1.onClick(NearbyPlaceTypeItemViewHolder.kt:32) at android.view.View.performClick(View.java:5647) at android.view.View$PerformClick.run(View.java:22462) at android.os.Handler.handleCallback(Handler.java:754) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6205) at java.lang.reflect.Method.invoke(Native […]

Android室:kotlin中的多模块项目

有没有人使用多模块Android的房间成功? 每当我在主模块中拥有所有的实体类时,所有的东西都可以正确编译。 当我将任何实体类(例如Person.kt )移动到主模块所基于的域模块时,整个项目的编译失败。 似乎没有find现在位于域模块中的文件( Person.java )。 我在两个模块中都使用了kotlin-kapt插件,并生成了正确的文件,但由于某些原因,它并没有被主模块拾取。

Kotlin注释处理器:无法使其工作

我的gradle构建: buildscript { ext.kotlin_version = ‘1.1.4-3’ repositories { mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } apply plugin: ‘java’ apply plugin: ‘kotlin’ apply plugin: “kotlin-kapt” sourceCompatibility = 1.8 repositories { mavenCentral() } kapt { processors = “libs.orm.codeGenerators.ModelProcessor” //PROCESSOR } dependencies { compile “org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version” compile “com.google.auto.service:auto-service:1.0-rc3” } 处理器不在单独的模块中。 处理器什么也不做,在#process它只是抛出,看它是否工作。 @AutoService(Processor::class) @SupportedSourceVersion(SourceVersion.RELEASE_8) class ModelProcessor : AbstractProcessor() { […]

使用kapt时,Realm在Java / Kotlin项目中不生成RealmProxy类

我正在尝试将领域集成到Java / Kotlin项目中,但是kapt甚至不会为.java文件生成RealmProxy类 我已经更新领域,因为这一点 ,但仍然无法正常工作 Gradle应用程序文件: apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-kapt’ apply plugin: ‘realm-android’ repositories { maven { url ‘https://maven.fabric.io/public’ } } kapt { generateStubs = true } project.ext { daggerVersion = ‘2.2’ } dependencies { compile “org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version” compile “org.jetbrains.kotlin:kotlin-reflect:$kotlin_version” kapt “com.android.databinding:compiler:2.3.3” annotationProcessor group: ‘com.google.dagger’, name: ‘dagger-compiler’, version: “${daggerVersion}” compile group: […]

如何在Java / Kotlin中包含Annotation Processor生成的代码来测试类路径

我有一个Android项目正在从Java迁移到Kotlin。 在这个项目中,我有一个纯Kotlin模块,在这里我使用下面的build.gradle实现一个API客户端: apply plugin: ‘kotlin’ apply plugin: ‘kotlin-kapt’ dependencies { implementation “org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}” implementation “com.squareup.retrofit2:retrofit:${retrofit_version}” implementation “com.squareup.retrofit2:converter-gson:${retrofit_version}” implementation “com.google.code.gson:gson:${gson_version}” implementation “com.squareup.okhttp3:logging-interceptor:${okhttp_version}” implementation “io.reactivex.rxjava2:rxjava:${rx_java_version}” implementation “io.reactivex.rxjava2:rxkotlin:${rx_kotlin_version}” implementation “com.jakewharton.retrofit:retrofit2-rxjava2-adapter:${retrofit2_rxjava2_adapter_version}” compileOnly “javax.annotation:jsr250-api:${jsr250_version}” implementation “com.google.dagger:dagger:${dagger_version}” kapt “com.google.dagger:dagger-compiler:${dagger_version}” testImplementation “junit:junit:${junit_version}” testImplementation “org.mockito:mockito-core:${mockito_version}” testImplementation “org.hamcrest:hamcrest-junit:${hamcrest_version}” testImplementation “com.squareup.okhttp3:mockwebserver:${mockwebserver_version}” // Dependence injection kaptTest “com.google.dagger:dagger-compiler:${dagger_version}” } unit testing有一个Annotation Processor依赖关系: kaptTest “com.google.dagger:dagger-compiler:${dagger_version}” 我可以在build / generated / […]

kotlin注释处理:检查给定的TypeElement是否来自kotlin-class

我正在实现注释处理库,它使用基于具有特定注释的类的java诗人生成代码。 也要使用kotlin编写的类我已经切换到kapt而不是apt在我的示例项目。 它适用于注释的Java类就好了。 Bun kotlin-classes在访问类字段方面有不同的方法:应该使用getter和setter。 有没有一种方法来确定给定的类(更具体地说 – 不是一个类,而是一个TypeElement – 因为这是编译之前发生的)是java类还是写在kotlin? 基于此,我可以编写生成字段访问或getters使用访问的代码。

在Android Studio 3.0中,Kapt不适用于AutoValue

Gradle依赖关系: compile 'com.google.dagger:dagger:2.9' annotationProcessor 'com.google.dagger:dagger-compiler:2.9' kapt 'com.google.dagger:dagger-compiler:2.9' provided "com.google.auto.value:auto-value:1.4.1" annotationProcessor "com.google.auto.value:auto-value:1.4.1" 得到这个堆栈跟踪: :presentation:kaptDevDebugKotlin e: @AutoValue public abstract class Categories implements CategoriesModel{ e: ^ e: symbol: class CategoriesModel e: path/Categories.java:13: error: cannot find symbol w: warning: The following options were not recognized by any processor: '[kapt.kotlin.generated]' w: e: org.jetbrains.kotlin.kapt3.diagnostic.KaptError: Error while annotation processing at org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:90) at […]