当前位置: 首页 > 面试题库 >

AutoValue示例:错误:找不到符号类AutoValue_Animal

秦德海
2023-03-14
问题内容

我正在尝试了解@AutoValue。我遵循https://github.com/google/auto/blob/master/value/userguide/index.md中的示例

我正在使用Android Studio 3.4

我添加我的gradle依赖

    implementation 'com.google.auto.value:auto-value-annotations:1.6.6'
    annotationProcessor 'com.google.auto.value:auto-value:1.6.6'

我也在用

classpath 'com.android.tools.build:gradle:3.4.2'

distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

我的代码如下

@AutoValue
abstract class Animal {
    static Animal create(String name, int numberOfLegs) {
        return new AutoValue_Animal(name, numberOfLegs);
    }

    abstract String name();
    abstract int numberOfLegs();
}

public class ExampleUnitTest {
    @Test
    public void testAnimal() {
        Animal dog = Animal.create("dog", 4);
        assertEquals("dog", dog.name());
        assertEquals(4, dog.numberOfLegs());

        // You probably don't need to write assertions like these; just illustrating.
        assertTrue(Animal.create("dog", 4).equals(dog));
        assertFalse(Animal.create("cat", 4).equals(dog));
        assertFalse(Animal.create("dog", 2).equals(dog));

        assertEquals("Animal{name=dog, numberOfLegs=4}", dog.toString());
    }
}

当我运行测试时,它会出错

error: cannot find symbol class AutoValue_Animal

我错过了什么?

在https://github.com/elye/issue_android_auto_value中添加了我的html" target="_blank">设计存储库


问题答案:

显然,问题是因为,我把我的

@AutoValue
abstract class Animal {
    static Animal create(String name, int numberOfLegs) {
        return new AutoValue_Animal(name, numberOfLegs);
    }

    abstract String name();
    abstract int numberOfLegs();
}

在测试文件夹而不是源文件夹中。将其移至源文件夹(与MainActivity相同)可以解决该问题。



 类似资料:
  • 我下载了一个Android项目,但我得到了这个错误: 样品导入: 样品用法: 代码时没有错误,但在编译时我得到了我提到的错误。 当我尝试在Android Studio上进行定义时,我不能。 应用程序级生成。格拉德尔: 我试着清理和重建这个项目,但还没有成功。 谢谢你的帮助。

  • 我是Android应用程序开发的新手,所以请耐心等待我。我正在编写一个应用程序,该应用程序从Google Play服务获取GPS位置,然后通过蓝牙广播数据。我有一个获取位置的位置活动,以及一个广播数据的 AdvertisingActivity。 我的问题是我很难理解Android应用程序中的文件结构,所以我怀疑我缺乏理解是我遇到错误的原因。 下面是位置活动的一个代码段,其中错误是: 为什么编译器找

  • 这里有一个类似的答案:如何在Java中将函数作为参数传递? 但提供的正确答案不起作用。我有一门课: 在函数内部我试图将传递到,但我得到的错误是: 找不到符号 符号:类Callable 我不知道为什么。 另外,我尝试使用返回类型字符串作为xMethod,您能传递一个返回类型不同的函数吗?

  • 问题内容: 我使用时代码工作正常 吗?在我看来这很奇怪。 (错误显示在终端上) 问题答案: 这是 Arrays 类的静态方法。 您应该像这样调用它: 请注意,您仍然必须像这样导入Arrays类: 或者像其他人提到的那样,如果您进行静态导入,则可以省略类名。 我认为这样做对可读性更好。

  • (菜鸟失误,我确定。) 我是计算机科学专业的一年级学生,正在尝试用代码编写作业程序; 但是在编译时,我得到了错误; Lab10Ex1.java:10: 错误: 找不到符号 System.out.print(n 1);^ 符号:变量n 位置: 班级 Lab10Ex1 如果有人能向我解释我做错了什么,或者如何纠正它,我会非常感激。

  • 我有一个问题,我试图实现一个JMenuBar,但不断得到一个不能找到符号错误。我将JFrame与main方法一起放在一个单独的类中,JFrame将安装MainPanel类的一个对象。我在这里漏掉了什么?如有任何帮助将不胜感激,谢谢! 符号:方法setJMenuBar(JMenuBar) 位置:类主面板