我正在尝试了解@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中添加了我的设计存储库
显然,问题是因为,我把我的
在测试文件夹而不是源文件夹中。将其移至源文件夹(与MainActivity相同)可以解决该问题。