用gradle创建jar,当导入一个类时,在同一个包中看不到其他的

时间:2014-10-30 18:56:27

标签: java android jar gradle android-gradle

我一直在尝试使用gradle来创建一个我的库模块(我正在构建的SDK)的jar。

task sourcesJar(type: Jar) {
    archiveName='here.jar'
    from android.sourceSets.main.java.sourceFiles
}

创建了jar,这个项目有4个类,所有类都在jar中,扩展名为.java。

jar tvf的输出

 0 Thu Oct 30 19:37:00 CET 2014 META-INF/
    25 Thu Oct 30 19:37:00 CET 2014 META-INF/MANIFEST.MF
     0 Wed Oct 15 18:31:24 CEST 2014 com/
     0 Thu Oct 30 16:57:36 CET 2014 com/bastly/
     0 Thu Oct 30 18:57:38 CET 2014 com/bastly/SDK/
   357 Thu Oct 30 16:57:30 CET 2014 com/bastly/SDK/BasicWrapper.java
   430 Thu Oct 30 16:57:30 CET 2014 com/bastly/SDK/MessagePayload.java
   284 Thu Oct 30 16:57:30 CET 2014 com/bastly/SDK/MobaseMessage.java
  4997 Thu Oct 30 18:57:38 CET 2014 com/bastly/SDK/RTmobase.java
   267 Thu Oct 30 16:57:22 CET 2014 com/bastly/SDK/RTmobaseCallbacks.java
   365 Thu Oct 30 16:57:30 CET 2014 com/bastly/SDK/UserWrapper.java

当我在另一个项目中添加这个jar并添加到gradle构建它出现时我可以看到所有的java类,但是RTmobase的主类使用RTmovaseCallback类,它似乎无法找到它和android studio说:

无法解析符号'RTmovaseCallback'

public class RTmobase <T,S> {

    private Socket socket = null;
    private String apiKey;
    private String userName;
    private RTmobaseCallbacks cb;
...

这与jar任务有关吗?应该包含在MANIFEST.MF中的类路径?我不知道我错过了什么,但我有点陷入困境。

任何帮助将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:1)

使用此功能(请参阅from中的更改)

task sourcesJar(type: Jar) {
    archiveName='here.jar'
    from android.sourceSets.main.output
}

这应该创建带有类的jar。例如,请参阅Gradle User Guide中的第27.7.3节 Gradle User Guide是一个很好的资源来源。