Java 使用gradle创建jar,导入类时无法看到同一包中的其他类
我一直在尝试使用gradle为我的库模块(我正在构建的SDK)创建一个jar来完成这个任务Java 使用gradle创建jar,导入类时无法看到同一包中的其他类,java,android,jar,gradle,android-gradle-plugin,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个类,它们都在jar中,扩展名为.java jar-tvf的输出 0 Thu Oct 30 19:37:00 CET 2014 META-INF/ 25
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 build时,它出现了,我可以看到所有的java类,但是主类RTmobase使用RTmovaseCallback类,似乎找不到它,android studio说:
无法解析符号“RTmovaseCallback”
public class RTmobase <T,S> {
private Socket socket = null;
private String apiKey;
private String userName;
private RTmobaseCallbacks cb;
...
公共类RTmobase{
私有套接字=空;
私钥;
私有字符串用户名;
私有RTMOBASE回调cb;
...
这与jar任务有关吗?与应该包含在MANIFEST.MF中的类路径有关吗?我不知道我遗漏了什么,但我有点卡住了
任何帮助都将不胜感激。
谢谢。使用此功能(请参见中的更改)
这将创建带有类的jar
是一个很好的源代码。如何将这些类提供给另一个构建?这些是源文件,而不是类文件。作为libs和build.gradle编译文件('libs/myjar.jar')上的jar,好吧,所以我发现我正在用java文件创建一个jar,我需要编译的类从fileTree添加它(dir:'build/intermediates/classes/release')创建了它,但它在文档中的什么位置显示了它?或者我应该依赖于哪个文档?任何书籍?错误:(63,0)在源集合main上找不到属性'output'。所做的工作来自文件树(dir:'build/intermediates/classes/release'))这只是获取已编译类的dest dir,但是所有这些源集的描述在哪里?main代表什么?以及输出?
task sourcesJar(type: Jar) {
archiveName='here.jar'
from android.sourceSets.main.output
}