我是Android Studio的新手。 我如何在< JDK >文件夹下面的外部库中添加几个jar文件?
当前回答
手动:
在项目中添加libs文件夹(Where build。Gradle被定位)。例如,应用程序 移动.jar到lib 在build.gradle中添加实现文件('libs/<name>.jar')。它与UI Add as library do相同
其他回答
请在build.gradle中提供jar文件位置
implementation fileTree(dir: '<DirName>', include: ['*.jar'])
例子:
implementation fileTree(dir: 'C:\Downloads', include: ['*.jar'])
添加单个jar文件
implementation files('libs/foo.jar')
注意: Compile在最新的gradle中已弃用,因此改用implementation。
基于GUI的方法是在项目中添加一个额外的模块。
从“文件”菜单中选择“项目结构”并单击绿色部分 左上角的加号图标。 弹出新的Module对话框 从手机和平板电脑应用程序组中选择“Import JAR or AAR package”选项,然后单击下一步。 按照以下步骤创建一个包含JAR文件的新模块。 单击与主项目相对应的条目,并选择依赖项选项卡。 向步骤4中创建的模块添加依赖项。
最后一条建议。确保您包含的JAR文件最多是用JDK 1.7构建的。关于“com.android.dx.cf.iface”错误消息的许多问题。错误的类文件magic (cafebabe)或version(0034.0000)"根直接到这个:0。
在你的android项目中添加一个罐子的“官方方式” 外部库,是在jar中添加依赖项{}节 build.gradle。
如果你做了以上所有的事情,但没有一个奏效,那么还有另外两种可能:
If Android Studio or some other IDE doesn't give red underlined errors in editor but runs in error in the Java Compiler, CHECK YOUR JAR. Your jar may not have a proper Manifest included therefore the compiler doesn't know what the jar can provide/don't know it's package name Maybe it's folder structure is messed up. The folder structure doesn't match with its package name. package a.b.c; should be matching to folder a > folder b > folder c. The package name has some conflict. (Trust me, this happened to me and it took hours to figure it out.)
然而,如果你打算用cordova,这里有一些添加外部罐子的技巧。
“build-extras。Gradle”是更好的管理Gradle文件的方法。
下面是在基于cordova的android项目中管理额外设置的步骤:
添加jar到build-extras.gradle: //其他设置在这里,例如:buildscript{…} ext.postBuildExtras = { //你可能有一些其他的设置,例如:android{…} 依赖关系{ 编译文件(“libs / abc.jar”) } }
(更详细的步骤在这里:扩展cordova gradle文件以包括谷歌服务)
在终端,做:
Cordova构建android
在应用程序目录中创建“libs”文件夹,将jar文件复制到libs文件夹中,右键单击Android Studio中的jar文件,并添加为库… 然后打开构建。Gradle并添加这个:
dependencies {
implementation files('libs/your jar file.jar')
}
如果有人正在寻找另一个解决方案,而没有实际将jar文件复制到项目目录中,例如在多个项目中使用jar时: 构建开放。Gradle和add
def myJarFolder = 'C:/Path/To/My/Jars'
[...]
dependencies {
[...]
compile fileTree(dir: myJarFolder + '/jar/Sub/Folder/1', include: ['*.jar'])
compile fileTree(dir: myJarFolder + '/jar/Sub/Folder/2', include: ['*.jar'])
[...]
}
注意,当然你不必使用myJarFolder变量,我发现它很有用。路径也可以是相对的,例如:../../ path /To/My/Jars。 AndroidStudio 3.0测试
更新: 对于Gradle Plugin > 3.0,使用implementation代替compile:
dependencies {
[...]
implementation fileTree(dir: myJarFolder + '/jar/Sub/Folder/1', include: ['*.jar'])
implementation fileTree(dir: myJarFolder + '/jar/Sub/Folder/2', include: ['*.jar'])
[...]
}
推荐文章
- Android-Facebook应用程序的键散列
- 登出时,清除活动历史堆栈,防止“返回”按钮打开已登录的活动
- 如何改变标题的活动在安卓?
- 错误:与依赖项“com.google.code.findbugs:jsr305”冲突
- 如何隐藏动作栏之前的活动被创建,然后再显示它?
- 是否有一种方法以编程方式滚动滚动视图到特定的编辑文本?
- 在Android中将字符串转换为Uri
- 如何在NestedScrollView内使用RecyclerView ?
- 移动到另一个EditText时,软键盘下一步点击Android
- Android应用中的GridView VS GridLayout
- Activity和FragmentActivity的区别
- 右对齐文本在android TextView
- 权限拒绝:start前台需要android.permission.FOREGROUND_SERVICE
- 在Android Studio的模拟器上截图
- 如何更改android操作栏的标题和图标