java - 使用 gradle 创建 jar,导入类时无法看到同一包中的其他类

标签 java android jar gradle android-gradle-plugin

我一直在尝试使用 gradle 来创建我的库模块(我正在构建的 SDK)的 jar 来完成此任务。

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

jar 已创建,该项目有 4 个类,它们都位于带有 .java 扩展名的 jar 中。

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 中的类路径?我不知道我错过了什么,但我有点卡住了。

如有任何帮助,我们将不胜感激。 谢谢。

最佳答案

使用它(请参阅from中的更改)

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

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

关于java - 使用 gradle 创建 jar,导入类时无法看到同一包中的其他类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26661182/

相关文章:

Java 观察者模式 - 将信息传递给其他类 - 方法

java - 具有相同值的项目列表

java - 在 Swing 中操作 JPanel

javac 找不到源文件

android - 从服务器正确下载和显示图像

javascript - 设置相机宽度和高度 phonegap 相机

java - 对基本框架类进行子类化是否安全?

java - ANT 创建 jar 文件,导致 getResource + 编码出现问题

java - Jar 更改输出 unicode

java - 如何从命令行运行包含 OpenCV 代码并使用 ant 创建的 .jar 文件?