- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在使用 gradlew(4.10.2) + dagger(2.18) 时遇到了一个奇怪的问题。
问题是当我打电话时:
./gradlew :app:compileDebugAndroidTestKotlin
构建失败:
Task :Common:compileDebugJavaWithJavac FAILED
/CommonModule_ProvidesGsonFactory.java:6: error: package javax.annotation.processing does not exist import javax.annotation.processing.Generated;
/CommonModule_ProvidesGsonFactory.java:8: error: cannot find symbol @Generated(
但如果我运行任务 from Android Studio ,任务成功并且 @Generated
不出现在 Dagger 生成的类中。
你有什么线索可以避免使用 ./gradlew
的 @Generated
注释吗?
最佳答案
Dagger 使用auto-common
的GeneratedAnnotations
找出哪个@Generated
要使用的注释。它基于类路径执行此操作。
这意味着当注释处理器运行时,javax.annotation.processing.Generated
在生成器中可用并使用,但是当生成的文件在另一个任务中编译时,它不再位于类路径中。
可能的原因可能是代码是使用较新版本的 JDK 生成的,并且增量构建无效,需要完全“清理和重建”,或者注释处理器在 Java 9 上运行的 Java 语言级别存在问题+,但 android 编译为 Java 8 或更低版本。
使用 ./gradlew compileDebugAndroidTestKotlin -Dorg.gradle.java.home=<Android studio jre path>
解决了问题。
关于java - @Generated 注解使用 gradlew + dagger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53186989/
我是 Gradle 新手,正在阅读此处的 Spring 教程: http://spring.io/guides/gs/gradle/ 我到达了它告诉我添加此任务的部分: task wrapper(ty
我在我的 react-native 项目的 gradlew clear 文件夹中错误地写了 gradlew clean 而不是 android,我发现它做了一些认真的工作。那么这是在做什么, grad
我注意到了 ./gradlew tasks 对于我的 android 项目,给我 assemble* 和 compile* 任务。 有什么区别? 我还注意到该命令列出了任务 compileDemoDe
我正在 salve 机器上设置 Jenkins 作业,我是 Linux shell 的新手。现在我有一个问题: 以 jenkins(为 Jenkins 作业设置的用户帐户)登录,执行 ./gradle
我想在 gradle 的帮助下从命令行构建 apk。我应该使用哪个命令来构建仅发布版本的 apk? 最佳答案 调试 ./gradlew 发布 ./gradlew assembleRelease 你的
我正在尝试 bundle 我的 APK。当我使用 gradlew assembleRelease或 assembleReleaseStaging我的应用程序没有变化。当我使用 react-native
根据 this以及我看过的许多其他地方/论坛,我应该始终在我的 git/svn/cvs 中包含 gradle 包装文件。 但是,为什么?在我的 build.gradle 文件中,我已经明确包含了我希望
我有以下情况: 我有一个包含几个子项目的项目。今天我尝试通过命令行使用 gradle 构建项目。 执行 ./gradlew clean :build 时构建成功, 但不是 ./gradlew clea
一个疯狂的问题,当我运行 gradlew assembleRelease 时,错误信息是: ... Loading dependency graph, done.easeJsAndAssets war
我尝试从命令行运行 gradlew,但经常遇到以下错误。 Brendas-MacBook-Pro:appx_android brendalogy$ ./gradlew compileDebug --s
我有一个来自 Gaelyk(称为 Bloogie)的示例,它使用 gradlew。 我在代理后面。 我阅读了 gradle 文档并发现了这个: gradle.properties systemProp
我有一个gradle项目。 当我输入“gradlew 任务”时,我会看到一堆任务。 这些任务在哪里?我如何查看它们的定义位置? 最佳答案 gradle help --task 将为您提供有关给定任务
我正在使用 Minecraft Forge 进行 retrofit 。对于那些不知道 Forge 是什么的人来说,它是一个防止模组破坏 Minecraft 源代码并帮助模组共存的程序。它还包含一个开发
我已经设置了 build.gradle文件与 apply plugin: 'java' .我尝试使用说明设置 gradle 包装器 here ,但是当我输入 sudo ./gradlew build
我从 git 加载一个项目并在 MacBook 上成功构建它。当我在终端窗口中输入 './gradlew assembleRelease' 时,出现错误: bash: ./gradlew: No su
我运行./gradlew clean是因为我的flutter运行assembleDebug过程花费了意想不到的长时间。我希望它删除我的文件夹,但相反,它开始下载gradle。Downloading h
当我尝试使用 ./gradlew clean 清理我的项目时它有效,但是./gradlew build不会工作。我尝试了一些存储库,但它无法解决 Spring 依赖项。 这里是 build.gradl
我正在尝试构建libGDX项目,但是gradlew刚刚停止工作。两个月前,它运行良好。似乎更新Java破坏了它。这是发生了什么: 这是Java文件夹的内容(不知道为什么会有用): 最佳答案 您的JAV
我正面临这个问题 sparsh610@DESKTOP-551C51M:/mnt/e/xxxxxxxxx$ ./gradlew mm : not found2: ./gradlew: : not fou
我已经设置了 build.gradle 文件,目前我的项目运行良好。现在的问题是当我运行 ./gradlew run 时,它失败并显示错误: What went wrong: Execution fa
我是一名优秀的程序员,十分优秀!