【问题标题】:Android Studio can not resolve AutoValue classAndroid Studio 无法解析 AutoValue 类
【发布时间】:2016-07-29 10:56:25
【问题描述】:

我今天在我的一个项目中开始使用AutoValue,困扰我的是Android Studio 无法解析生成的类名(AutoValue_DrawableContent)并用红色标记:

我怎样才能取消这个警告?

【问题讨论】:

标签: android-studio intellij-idea auto-value


【解决方案1】:

将“idea”插件添加到您的build.gradle,例如:

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'net.ltgt.apt'

通过这个插件,Android Studio 可以找到生成的源文件。

【讨论】:

    【解决方案2】:

    您可以注释掉每个依赖项并一一同步...它可能会解决问题...

        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.google.android.gms:play-services-maps:15.0.1'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    

    【讨论】:

      【解决方案3】:

      现在您已经注释了您的类,您需要构建您的项目。这将生成缺少的类,Android Studio 之后将能够找到它。

      即使编辑器当前无法识别类名,构建也不会失败,因为代码生成将在类编译之前发生。

      【讨论】:

      • 我在提出问题之前构建了项目。项目构建并运行良好,但 Android Studio 编辑器无法解析 AutoValue_Something 类并将其标记为错误。
      • 嗯...你的 build.gradle 中有 apply plugin: 'com.neenbedankt.android-apt',你的依赖项中有 apt "com.google.auto.value:auto-value:<VERSION>" 吗?
      • 是的,其实apt在build/generated/source/apt文件夹下生成了两个类,分别是AutoValue_DrawableContent.java和$AutoValue_DrawableContent.java。但由于某种原因,这还不够。
      • 您确定您使用的是 android-apt 插件而不是 AutoValue 文档中引用的 gradle apt 插件吗?通过将classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' 添加到项目的build.gradle 中的buildscript 依赖项并将apply plugin: 'com.neenbedankt.android-apt' 添加到模块build.gradle 来安装android-apt 插件。如果您改用net.ltgt.apt,Android Studio 将不会拾取生成的文件。
      • 顺便说一句,既然您似乎也想实现 Parcelable,您可以使用 AutoParcel 代替 AutoValue :github.com/frankiesardo/auto-parcel
      【解决方案4】:
      1. 生成实现类。 AutoValue 库会做到这一点。
      2. 将这些动态类目录添加到源路径中。 android-apt 插件会做到这一点。完成此操作后,ide 将知道 AutoValue_* 并且不会显示错误。

      【讨论】:

        猜你喜欢
        • 2019-08-06
        • 2021-12-24
        • 2023-01-18
        • 2018-03-07
        • 1970-01-01
        • 2018-01-28
        • 2015-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多