android服务器打包jar,androidStudio 4.0 打包jar、找不到jar一系列问题、classes.jar位置...

androidStudio 4.0 打包jar、找不到jar一系列问题、classes.jar位置

写前叨叨.....

正文

一:新建Module

二:打包Jar (重点)

二:遇到的问题

三:解决问题

写后叨叨.....

写前叨叨…

众所周知,作为一名合格的Android开发者,打包 aar、jar、apk… 是所必须要掌握的技能,可是就在今天下午发生了一件事件:我打包出来的jar 包居然找不到了,如果你也遇到了同样的问题,各位看官继续浏览。

本文的重点是为了解决 打包出来的jar 找不到的问题,可直接跳入 二:遇到的问题

今天遇到的问题是随着AndroidStudio版本的升级,构建脚本中 的

from 路径发生了改变,所以找不到 class.jar 所以发现不了什么问题,而生成的jar又找不到。

不同版本的androidStudio 中 classes的位置

build/intermediates/packaged-classes/release/

build/intermediates/bundles/defalut/

build/intermediates/aar_main_jar/release

正文

一:新建Module

1:新建 Module

90bfe4378009ec81136156788c34a204.png

2:选择 ModuleType为 AndroidLibrary

e3ca87ba0b34c15652bc3243f9fe06d5.png

3:为新建的Library 命名为TestJarLibrary(这个可以根据你自己来命名)

6bf62035e44f82b5b4cada69d1b80359.png

4:点击Finish 后整体 项目结构应该是这样子的

21b9fe4a5f0b1d4dcfb9be378add5766.png

5:在 TestJarLibrary 这个 Module中 新建类 LogUtil 并新建方法 showLog(这一步主要是为了验证我们的Module能否可用)

b31b4bea5d294e00bbea40afe60d1762.png

6:接下来就让我们在 别的Module 测试一下 我们的TestJarLibrary是否可用, 在需要使用的 Module build.gradle 中的dependencies 中新增

implementation project(path: ':TestJarLibrary')

让主Module 引入 TestJarLibrary

3f3bf906b59d0c3f8d16a7d829fac856.png

7:随便找个地方试一下 LogUtil.showLog(“测试”), 发现并没有报错,导包也是对的,说明我们的TestJarLibrary 是没问题的。

4be10672da950c303de19f06be945ff9.png

二:打包Jar (重点)

1:在testJarLibrary 的 build.gradle 中添加构建脚本 ,并同步

task makeJar(type: Copy) {

//删除存在的

delete 'build/libs/testLibrary.jar'

//设置拷贝的文件 (重中之重)

from('build/intermediates/aar_main_jar/release')

//打进jar包后的文件目录

into('build/libs/')

//将classes.jar放入build/libs/目录下

// include ,exclude参数来设置过滤

// (我们只关心classes.jar这个文件)

include('classes.jar') //重命名

rename('classes.jar', 'testLibrary.jar')

}

makeJar.dependsOn(build)

2:执行构建脚本

在 Terminal 中执行 命令 gradlew makeJar

就会在 Test JarLibrary 中的build/libs 生成 我们所需要的 testLibrary.jar

这里的名字,生成后保存路径都可以根据上面的打包 脚本去修改。

e73c625f3a6956bfc989746769cdffbb.png

3:测试jar :将我们打包出来的jar copy 到所需要的Module 地方的libs 目录下,并在 build.gradle 的 dependencies 添加

implementation files('libs\\testLibrary.jar')

57024a0df7b7313c18d7bd52e3a85c28.png

4:此时 你刚刚导进去的 jar包应该是可以展开的这种状态,然后我们找个地方测试一下 LogUtil 的调用。发现不报错,一切正常

92a68a77ace930b721fb345361db9ac9.png

二:遇到的问题

上面是理想的状态,这种简单的写法,放在以前写了好几百遍,都没有问题,各大网站各种打包的文章数不胜数,但是随着 AndroidStudio 的版本升级出现了一些小问题。

1:执行打包命令后 提示success 了,但是就是找不到 Jar包的位置,我们明确定义了路径 为 build/libs/,但是就是没有jar,甚至连libs 目录都找不到。

2:通过 各种百度,发现 不同的androidStudio版本 build/ class.jar 的目录发生了变化 ;

3:目前我所使用的是 android 4.0.1

文件所在目录为:

build/intermediates/aar_main_jar/release

fb8452c44489df4e3c8e31ad3e77d7c0.png

4:其余androidStudio 版本可能的位置

build/intermediates/packaged-classes/release/

build/intermediates/bundles/defalut/

三:解决问题

尝试用不同版本下的 classes.jar 文件路径

写后叨叨…

一件简单的事情 却让 一个老程序员抓耳挠腮,不知所措,所以点点滴滴的知识积累才是关键。以上文字仅代表我个人意见,工作中遇到的问题当做积累

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android Studio中打包jar文件,可以按照以下步骤操作: 1. 在项目的build.gradle文件中添加以下代码: ``` android { ... } // 添加以下代码 task createJar(type: Copy) { from('build/intermediates/bundles/release/') into('release/') include('classes.jar') rename('classes.jar', 'your_jar_name.jar') } // 添加以下代码 artifacts { archives createJar } ``` 2. 点击菜单栏中的Build -> Make Project,等待编译完成。 3. 在项目根目录下会生成一个release文件夹,里面包含了生成的jar文件。 4. 如果想要修改生成的jar文件名字,可以在build.gradle文件中修改rename('classes.jar', 'your_jar_name.jar')中的your_jar_name为自己想要的名字。 希望对你有帮助! ### 回答2: Android Studio 是一款非常流行的 Android 应用程序开发工具,其内置了许多有用的工具和功能,其中包括打包 JAR 文件的功能。下面是打包 JAR 的详细步骤。 步骤 1:创建 Java Library Module 在 Android Studio 中创建一个新项目或打开现有项目并使用以下步骤创建一个 Java Library Module: 1. 选择 File -> New -> New Module。 2. 在弹出窗口中,选择 Java Library,并单击 Next。 3. 输入模块名称,例如 mylibrary,并单击 Finish。 这将创建一个名为 mylibrary 的新 Java Library Module。 步骤 2:编写 Java 代码 在 mylibrary 模块中编写您的 Java 代码。请确保类和方法公开,以便使用该库时可以从您的应用程序中调用。 步骤 3:配置 Gradle 1. 在 Project 面板中,打开 build.gradle(Module: mylibrary)文件。 2. 将以下代码添加到文件的末尾: ``` task createJar(type: Jar) { from('build/classes/main/') archiveName = "mylibrary.jar" } ``` 此代码指定 Gradle 任务,该任务将创建名为 mylibrary.jarJAR 文件,并将其保存在 build/libs 目录下。 3. 在菜单栏中,选择 Build -> Build Module 'mylibrary'以将项目编译为 JAR 文件。 步骤 4:使用您的 JAR 文件 1. 打开您的 Android 应用程序项目。 2. 将生成的 mylibrary.jar 文件复制到您的应用程序项目的 libs 目录中。 3. 在 Project 面板中,右键单击您的应用程序项目,并选择 Open Module Settings。 4. 在左侧面板中,选择您的应用程序模块。 5. 在右侧面板中,选择 Dependencies 标签。 6. 单击加号图标,然后选择 File dependency。 7. 选择您刚刚复制到 libs 目录的 mylibrary.jar 文件,并单击 OK。 8. 现在,您可以使用您的 JAR 文件中定义的任何类和方法来开发您的 Android 应用程序了。 总结 使用 Android Studio 打包 JAR 文件非常简单,只需要创建一个 Java Library Module、编写您的 Java 代码、配置 Gradle 和使用您的 JAR 文件。遵循上面的步骤,您可以轻松地将自己的库添加到 Android 应用程序中。 ### 回答3: Android Studio 是一个基于 IntelliJ IDEA 的 Android 应用程序开发工具,它提供了一系列的工具,用于方便应用程序的开发、测试和部署。Android Studio 可以打包.jar 文件。 打包.jar 是为了把编写的 Java 代码作为一个独立并可重用的代码库发布并运行在不同的平台上。而jar包具有高的可重用性和可扩展性,会出现在很多项目中。下面介绍如何在 Android Studio 中打包.jar: 第一步,配置 build.gradle。在 app 目录下,打开 build.gradle 文件,配置以下代码: ``` apply plugin: 'com.android.library' android { compileSdkVersion 26 defaultConfig { minSdkVersion 17 targetSdkVersion 26 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) } task deleteOldJar(type: Delete) { delete 'libs/your_project.jar' } task exportJar(type: Exec) { workingDir "${project.buildDir}/intermediates/classes/release/"//.class 文件所在目录 def jarName = "your_project.jar" // Jar 包名称 commandLine 'jar', 'cvf', "../../../../../libs/'$jarName'", "."//manifest 和 class 所在目录,"."意为当前目录 } exportJar.dependsOn(deleteOldJar, build) ``` 其中, apply plugin: 'com.android.library' 这句话意味着当前工程看做一个 library,而不是一个 application。 dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) } 这句话意味着查 libs 文件夹中的所有.jar 文件,并引用其中的类。 task deleteOldJar(type: Delete) { delete 'libs/your_project.jar' } 这里的任务名叫做 deleteOldJar,它的作用是在执行 exportJar 任务之前,删除之前的 Jar 包,避免重复。 task exportJar(type: Exec) { workingDir "${project.buildDir}/intermediates/classes/release/" def jarName = "your_project.jar" commandLine 'jar', 'cvf', "../../../../../libs/'$jarName'", "." } 这里的任务名叫做 exportJar,它的作用是在将编译后的.class 文件打包Jar 包,具体实现关键在于 commandLine、workingDir 和 jarName。其中: commandLine 表示之后要执行的命令,'jar' 表示要打包Jar 包,'cvf' 表示创建新文件、给文件注释、打成压缩包的格式。 workingDir 表示在执行命令之前,切换到的目录。这里是指切换到编译好的.class 文件所在的目录。 jarName 表示要生成的 Jar 文件名称。 第二步,执行任务。这时,在 Android Studio 中,打开 Terminal(快捷键为 Alt + F12),然后执行以下命令: ``` ./gradlew exportJar ``` 运行完成后,在 app 目录下的 libs 文件夹中,就可以看到生成的.jar 文件。 总结一下,以上就是在 Android Studio 中打包.jar 的全部步骤,如需更多细节请阅读 Configuring Gradle Builds 文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值