如何解决未知类并且无法解析Android Studio java库模块中的符号

时间:2016-01-26 06:52:40

标签: java android android-studio subproject javapoet

使用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);
}

1 个答案:

答案 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')
}

一旦我加入了上述依赖关系,那么一切正常。不确定这是否适用于您的情况而没有更多细节,但这让我重回正轨。

相关问题