因为使用ButterKnife时,使用private修饰了fields,所以报错了。想在ButterKnife框架源码中找到"@BindView fields must not be private or static",却没有找到?这句不在ButterKnife源码里面吗?是编译器给出的吗?

解决方案 »

  1.   

    可以考虑用public
      

  2.   

    请参考源码:
      private static <T extends AccessibleObject & Member> void validateMember(T object) {
        int modifiers = object.getModifiers();
        if ((modifiers & (PRIVATE | STATIC)) != 0) {
          throw new IllegalStateException(object.getDeclaringClass().getName()
              + "."
              + object.getName()
              + " must not be private or static");

        }
        if ((modifiers & PUBLIC) == 0) {
          object.setAccessible(true);
        }
      }
      

  3.   

    使用public修饰符即可~
      

  4.   

    黄油刀不能使用private修饰符,其他的public、Default、protected都行,黄油刀的原理就是同目录生成一个类,所以不能用private修饰黄油刀注解的东西