2015-10-09 20 views
0

我刚刚创建了一个机器人库模块,现在我想将其导出为.jar文件(就像我曾经在Eclipse中做),这样我就可以用它在其他项目中,只需将其作为外部库文件链接即可。出口的Android库作为.jar文件

的问题是,我刚刚从官方网站读到“你可以一个库模块不能导出到一个JAR文件”:https://developer.android.com/tools/projects/index.html所以

我该怎么办呢?我能做些什么来获得相同的结果吗?

感谢

回答

1

你必须将其导出为.AAR文件。无法将Android Studio库导出为.jar文件。

Android .AAR Format

检查了这一点:https://androidbycode.wordpress.com/2015/02/23/building-an-aar-library-in-android-studio/

AAR的目的:图书馆再利用Java中长期以来一直可用的基于 应用程序通过Java归档(.jar)文件的文件。 Android AAR文件 基于这一概念,可让您不仅打包源码 代码,还打包自带Android资源的库。该 库都可以有自己的清单和资源,还可以 选择性地提供资产,NDK建库,proguard的配置 ,甚至自己的定制皮棉过滤器。这些都归入zip 存档中,可以发布到您的团队的存储库(或世界上的 !)以便通过Gradle构建轻松访问。

这是如何创建由@ alex18aa的.AAR文件:

File - >New module - >Import aar/jar,然后在模块设置中添加了dependencie,和连接它。

+0

所以我可以在其他android项目中使用.aar输出作为旧的.jar文件?确切地说, – alex18aa

+0

! :和主要区别是.AAR文件包含资源:D – Jorgesys

+1

谢谢它的工作原理!我认为这样说也很重要,你必须这样做:文件 - >新建模块 - >导入aar/jar,然后在模块设置中添加依赖关系,并链接它。再次感谢! – alex18aa

0

查看AAR文件。他们是Android库,不仅可以包含代码,还可以包含资源!

0

AAR:查找AAR文件等我做到这一点的方法是:

uploadArchives { 
repositories.mavenDeployer { 
    repository(url: "someDirectory/") 
} 

}

然后./gradlew clean build uploadArchives


JAR:如果你不”没有资源文件,只需将其添加到您的build.gradle:

task makeJarRelease(type: Copy) { 
    from("build/intermediates/bundles/release/") 
    into("some_directory/") 
    include("classes.jar") 
    rename("classes.jar", "yourlibname.jar") 
} 

然后运行一个./gradlew clean build makeJarRelease

这将做到这一点。

是的,Android Studio导出.AR文件,这是新标准。但是,如果你需要一个jar文件,那你怎么做到的。

同样,如果您想以这种方式执行此操作,那么不能包含的res文件夹(即无XML文件或可绘制文件)。

+0

是的,但以这种方式,我只是有类......我可以使用它作为外部库..因为我还需要其他资源 – alex18aa

+0

然后,你必须做其他人都说,并作为一个AAR文件导出。 – VicVu