将gradle中的外部jar添加到Android项目
Posted
技术标签:
【中文标题】将gradle中的外部jar添加到Android项目【英文标题】:Add external jar in gradle to Android project 【发布时间】:2012-07-22 11:44:57 【问题描述】:我正在尝试将 jar 添加到 android 上的项目中。我用 maps.jar 库做了一个测试。当我导入该类时,它有一个名为 com.google.android.maps.MapView 的类。我收到错误包 com.google.android.maps 不存在 导入 com.google.android.maps.MapView;
我尝试以多种方式将此 jar 文件包含到我的 gradle.build 中:
dependencies
runtime files('/Users/user/Documents/workspace/MyAndroidApp/libs/maps.jar')
//runtime fileTree(dir: '/Users/user/Documents/workspace/MyAndroidApp/libs', include: '*.jar')
//classpath fileTree(dir: '/Users/user/Documents/workspace/MyAndroidApp/libs', include: 'maps.jar')
目前运气不佳。
有什么想法吗? 谢谢!
【问题讨论】:
如android工具网站的描述: > compile配置用于编译主应用程序。其中的所有内容都添加到编译类路径中,并打包在最终的 APK 中。似乎它将所有地图类打包到APK中。那样可以么?知道我们是否只需要运行时引用而不是静态引用? 【参考方案1】:我是这样搞定的:
-
将 jar 文件拖到 libs 文件夹中。
右键单击 jar 文件并选择“添加库”现在 jar
文件是一个库。
打开
build.gradle
文件(注意至少有两个build.gradle
文件,不要使用根目录,使用项目范围内的那个)。
找到依赖项部分(对我来说,我正在尝试使用 admob -GoogleAdMobAdsSdk jar 文件)
dependencies
compile files('libs/android-support-v4.jar','libs/GoogleAdMobAdsSdk-6.3.1.jar')
最后进入settings.gradle
并确保它看起来像
这个:
include ':yourproject', ':yourproject:libs:GoogleAdMobAdsSdk-6.3.1'
【讨论】:
【参考方案2】:必须将编译依赖项添加到compile
配置(不是runtime
或class path
)。
【讨论】:
还有一个问题。如果我将 .class 文件放在文件夹 maps 下,我可以将其包含为编译文件('/Users/ddayer/Documents/workspace/MyAndroidApp/libs/maps/*')吗?当我尝试在我的 java 项目中使用一个类时,原因不起作用。 类路径可以包含对保存类文件的各个存档和目录的引用。因此files("/Users/ddayer/Documents/workspace/MyAndroidApp/libs/maps")
应该可以工作。如果您需要通配符,则必须使用 fileTree
,就像您在上面所做的那样。
好吧,我不知道是否是 android 的 android 插件,但是当我尝试以这种简单的方式添加类时,它没有找到它们。我需要先创建一个jar文件。
是的,可能是 Android 特有的。以上是关于将gradle中的外部jar添加到Android项目的主要内容,如果未能解决你的问题,请参考以下文章
Gradle + Spring启动项目:包括外部jar依赖项
Android Gradle 插件将自定义 Gradle 插件上传到自建 Maven 仓库 ③ ( 配置上传工件 | 将 Gradle 插件 jar 包源码文档上传到本地Maven 仓库 )