当前位置: 首页 > 知识库问答 >
问题:

Android项目不会运行依赖注释处理器

潘辰龙
2023-03-14

我有一个包含2个模块的maven项目。其中一个模块包含注释处理器。当我尝试将项目作为Android项目的依赖项导入时,它不会运行注释处理器。找不到生成的类文件。

    implementation 'com.github.OmerUygurOzer.jet:jetcore:v1.0.9'
    annotationProcessor'com.github.OmerUygurOzer.jet:jetprocessor:v1.0.9'

我从jitpack导入如上所示的项目。jitpack上的构建成功了,我也可以在本地访问代码,这意味着编译成功了。但是应该生成的类并没有生成。所以要么是处理器没有启动,要么是我生成的类在错误的位置?android项目确实使用了许多其他带有注释处理器的库,比如Butterknife。所以这似乎只发生在这个特殊的注释处理器上。

这是我得到的错误:

java.lang.ClassNotFoundException: Didn't find class "JetEventIndex" on 

path: DexPathList[[directory "."],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
01-30 23:31:38.418 1469-1469/? W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
01-30 23:31:38.418 1469-1469/? W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-30 23:31:38.418 1469-1469/? W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
01-30 23:31:38.418 1469-1469/? W/System.err:     at com.jetcore.JetClassLoader.getConstructorForEventIndex(JetClassLoader.java:45)
01-30 23:31:38.418 1469-1469/? W/System.err:     at com.jetcore.JetClassLoader.createEventIndex(JetClassLoader.java:54)
01-30 23:31:38.418 1469-1469/? W/System.err:     at com.jetcore.JetDock.<init>(JetDock.java:21)

编辑:

我尝试将模块的包装类型更改为jar,但仍然没有任何效果。我的注释处理器不会启动。

如果任何人想要检查pom文件,项目链接位于此处:https://github.com/OmerUygurOzer/Jet

Gradle版本4.1 Android插件3.0.1

共有2个答案

丁振海
2023-03-14

试着这样做:

1.Add在存储库末尾的根build.gradle中:

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

2.Add依赖性

dependencies {
            compile 'com.github.OmerUygurOzer.jet:jet:v1.0.9'
    }
郜彬
2023-03-14

似乎版本1.0.9不可用。Git页面的版本1.0.4。请尝试使用1.0.4

https://github.com/OmerUygurOzer/Jet

 类似资料:
  • 我正在使用gradle/querydsl和JPA 2.1。 我想使用APT(qenties)生成querydsl元数据。 为此,我使用了gradle apt插件和gradle 4.7 在我的项目中,我使用以下配置了compileJava选项:

  • 有人知道如何在Android项目中启用Eclipse中的注释处理吗?我做了以下工作: 使用处理器和META-INF创建Java项目 如果我从文件夹中删除jar文件,Eclipse会报告项目中的错误,因为找不到注释处理器。但是,如果处理器就位并且配置了Eclipse,则不会进行处理 如果我在标准Java项目中使用相同的处理器,它就可以正常工作<有人能帮我吗?谢谢

  • 我试图处理这个错误(我在Android Studio更新东西之前从来没有过这个错误): 现在必须显式声明注释处理器。发现编译类路径上的以下依赖项包含注释处理器。请将它们添加到annotationProcessor配置中。-auto-value-1.4.jar(com.google.auto.value:auto-value:1.4)或者,设置android.defaultconfig.javaCo

  • 问题内容: 我认为许多专业人员不切换到注释驱动的依赖注入的主要原因是,它不支持在开发/测试/生产环境之间进行切换。在许多情况下,出于开发目的,您不仅可以使用不同的服务(及其连接),而且有时还需要模拟它们或创建Dummy实例。 昨天我想出了一种使用Spring注释的解决方案: …应该可以,但是不好。 对于您的解决方案或论点,我将非常感兴趣:为什么这不是一个真正的问题;-)欢迎Guice,Spring

  • 建筑格拉德尔 注释 加工机 \资源\META-INF\javax.annotation.processing.处理器 注释消费者 建筑格拉德尔 这应该是一个非常简单的注释处理器,只是打印调试语句。对我来说,这一切似乎都是正确的,但是在我构建/运行项目2时没有运行。我也尝试过覆盖和。那没有做任何事情。也尝试过没有,那也没有改变任何事情。 编辑:为什么我可以获得

  • 我有使用maven-processor-plugin的代码,让Hibernate在Java项目的文件夹一些类。我正在准备将项目迁移到Java 11,在开发环境和运行时环境中。 到目前为止,在Hibernate 4.3.10.Final和Java 8中一切正常。在安装JDK 11和使用Hibernate5.4.4.Final之后,我遇到了臭名昭著的<code>javax.annotation。生成的