首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Studio在java模块中的自动值和在Android模块中的使用

Android Studio在java模块中的自动值和在Android模块中的使用
EN

Stack Overflow用户
提问于 2016-07-13 08:51:58
回答 1查看 1K关注 0票数 3

使用Android,我有一个Android模块和一个Java模块。在Java模块中,我希望使用AutoValue生成不可变的类。

一切看起来都很好(文件是在Java模块中生成的),但是我无法访问Android项目中的那些文件。有什么建议吗?

app\build.gradle

代码语言:javascript
复制
apply plugin: 'com.android.application'
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':domain')
}

domain\build.gradle

代码语言:javascript
复制
plugins {
    id 'net.ltgt.apt' version '0.6'
}
apply plugin: 'java'
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.auto.value:auto-value:1.2'
    apt 'com.google.auto.value:auto-value:1.2'
}

domain/MyLocation.java

代码语言:javascript
复制
import com.google.auto.value.AutoValue;

@AutoValue
abstract class MyLocation {

    abstract String name();

    @AutoValue.Builder
    abstract static class Builder {
        abstract Builder name(String _name);
        abstract MyLocation build();
    }
}

当我构建域模块( java模块)时,我看到在这里生成'AutoValue_MyLocation‘文件:

代码语言:javascript
复制
\domain\build\generated\source\apt\main\my\package\domain\AutoValue_MyLocation.java

但是,我无法在我的Android模块中的任何地方使用生成的类。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-13 08:56:18

但是,通过查看生成的类,我发现它不是公开的,因此我无法在我的Android模块中访问它。

要修复它,只需简单地使@AutoValue类公开,如下所示

代码语言:javascript
复制
@AutoValue
public abstract class MyLocation {
    //
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38346916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档