使用Android Studio并创建一个java库模块作为子项目的一部分,我在以下java语句中收到错误:
javaFile.writeTo(System.out);
它抱怨无法解决符号' writeTo'和未知的课程' 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);
}
答案 0 :(得分:3)
在不知道你的异常是什么的情况下有点难以说,但是当我测试一个子模块注释处理器时,我有类似的弹出窗口。将处理器链接到我的主模块时,我得到了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')
}
一旦我加入了上述依赖关系,那么一切正常。不确定这是否适用于您的情况而没有更多细节,但这让我重回正轨。