使用 Android Studio 并创建一个 java 库模块作为子项目的一部分,我在以下 java 语句上收到错误:
javaFile.writeTo(System.out);
并且它抱怨无法解析符号"写入"和未知类"System.out"。
这是源代码类的要点
import com.squareup.javapoet.JavaFile;
import com.squareup.javapoet.MethodSpec;
import com.squareup.javapoet.TypeSpec;
import javax.lang.model.element.Modifier;
public class MyClass {
...
JavaFile javaFile = JavaFile.builder("com.foobar.helloworld", helloWorld)
.build();
javaFile.writeTo(System.out);
}
不知道你的异常是什么,有点很难说,但是当我测试子模块注释处理器时,我弹出了类似的东西。将处理器链接到我的主模块时,我得到了一个java.lang.NoClassDefFoundError: com/squareup/javapoet/MethodSpec
.我正在使用 android-apt 来让注释处理器工作,所以在我的build.config
中,我的依赖项具有 apt 配置定义:
dependencies {
...
apt 'com.squareup:javapoet:1.7.0' // <- Note that since my Processor used javapoet, I had to include Javapoet in the main module's apt dependency as well as my processor jar
apt files('../processor/build/libs/processor.jar')
}
一旦我包含了上面提到的依赖关系,那么一切正常。不确定这是否适用于您的情况,没有更多详细信息,但这让我回到了正轨。