3

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

1 回答 1

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

一旦我包含了上述依赖项,那么一切正常。如果没有更多详细信息,不确定这是否适用于您的情况,但这让我重回正轨。

于 2016-05-19T02:03:21.553 回答