我必须在工作中为笔记本电脑成像。现在,该项目将无法构建。其他开发人员可以继续以相同的提交罚款进行构建,因此这一定是某个环境问题。
我在我的完全Kotlin项目中使用Dagger 2,该项目具有一个app
模块,然后具有一个单独的data
模块。在启用proguard的情况下编译 release 版本时,我在data
库模块的所有已生成类中均收到以下错误(它也可能在app
模块中发生,但其没那么远):
error: cannot find symbol
@Generated(
^
symbol: class Generated
100 errors
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':data:compileProductionReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
我的data
模块的build.gradle
文件中有此文件用于依赖性:
implementation 'com.google.dagger:dagger:2.14.1'
kapt 'com.google.dagger:dagger-compiler:2.14.1'
compileOnly 'org.glassfish:javax.annotation:10.0-b28'
与我的app
模块的相同
implementation 'com.google.dagger:dagger:2.14.1'
kapt 'com.google.dagger:dagger-compiler:2.14.1'
compileOnly 'org.glassfish:javax.annotation:10.0-b28'
两个文件的顶部都带有apply plugin: 'kotlin-kapt'
。
我曾尝试过清理建筑物,使缓存无效并重新启动Android Studio,但是没有运气。我还尝试了将额外的kapt 'com.google.dagger:dagger-android-processor:2.14.1'
添加到data
模块中,但这还是行不通的。
有什么想法吗?
答案 0 :(得分:0)
由于我的笔记本电脑被擦掉,并且安装的Java的唯一版本是using System;
using System.Windows.Input;
namespace Test
{
public class ButtonCommand : ICommand
{
private Action WhattoExecute;
private Func<bool> WhentoExecute;
public ButtonCommand(Action What, Func<bool> When)
{
WhattoExecute = What;
WhentoExecute = When;
}
public bool CanExecute(object parameter)
{
return WhentoExecute();
}
public void Execute(object parameter)
{
WhattoExecute();
}
public event EventHandler CanExecuteChanged;
}
}
,因此gradle的安装就使用了该版本的JDK。 (1.10
显示了此版本。
为了解决这个问题,我使用自制软件下载了Java 8。
gradle -v
然后使用gradle 1.8版本,在我的brew tap caskroom/versions
brew cask install java8
文件中添加了以下几行。
/etc/profile
然后我跑export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home"
export PATH=$JAVA_HOME/bin:$PATH
,瞧。我的项目可以再次构建!