代码之家  ›  专栏  ›  技术社区  ›  StuStirling

在库模块中找不到使用匕首2和Proguard生成的符号@

  •  0
  • StuStirling  · 技术社区  · 6 年前

    我不得不在工作时给我的笔记本电脑拍照。现在这个项目不会建了。其他开发人员可以继续在同一提交罚款,所以它一定是一个环境问题某处。

    我使用匕首2在我的完全科特林项目,有一个 app 然后有一个单独的 data 模块。当编译 释放 启用proguard的build在 数据 库模块(它可能发生在 应用程序 模块也有,但还没有达到那个程度):

    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.
    

    我的 数据 模块的 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'
    

    和我的一样 应用程序 模块的

    实现“com.google.dagger:dagger:2.14.1”
    kapt'com.google.dagger:dagger编译器: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' 数据 但那也没用。

    有什么想法吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   StuStirling    6 年前

    因为我的笔记本电脑被擦干净了,而且唯一安装的Java版本是 1.10 ,gradle的安装使用的是JDK的那个版本。( gradle -v 显示此版本。

    为了纠正这个问题,我使用自制程序下载了Java8。

    brew tap caskroom/versions
    brew cask install java8
    

    然后让gradle使用1.8版,我在 /etc/profile 文件。

    export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home"
    export PATH=$JAVA_HOME/bin:$PATH
    

    然后我跑了 source /etc/profile 还有,瞧。我的项目可以重新建立!