所以久而久之很多人都不会最基础的打包方式,现在就来捋顺关系

首先是步骤 ,网上最少有三步,最多有8步,其中一些函数都已经被废弃,所以,笔者选择比较通用的6步

1.用aapt命令生成R.java文件

2.用javac命令编译java源文件生成class文件

3.用dx.bat将class文件转换成classes.dex文件

4.用aapt命令生成资源包文件resources.ap_

5.生成未签名的apk(sdk更新3.0以后貌似apkbuilder已经被删除了,所以笔者不用apkbuilder)

6.用jarsinger命令对apk认证,生成signed.apk

下面介绍笔者的实施背景

1.target以20为例,其中android.jar的地址为E:\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-20\android.jar

2.项目为learn723(不要问为什么是这个名字,我测试了才成功几十遍我会说!!!),建立完成之后的复制出来,地址为E:\Workspace

3.SDK为E:\adt-bundle-windows-x86_64-20140702\sdk

4.密匙地址E:\keystore(不会设密匙的后面会有脑补地址)

首先第一步

1

aaptpackage -f -m -J ./gen -S res -M AndroidManifest.xml -I E:\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-20\android.jar

-f 如果编译生成的文件已经存在,强制覆盖。 -m 使生成的包的目录存放在-J参数指定的目录 -J 指定生成的R.java 的输出目录路径 -S 指定res文件夹的路径 -I 指定某个版本平台的android.jar文件的路径 -A 指定assert文件夹的路径

这里要注意,可能会报缺失资源的错误,这里需要确保的是,建立项目是最低版本不能低于4.0,否则就会缺失资源

第二步

1

javac -bootclasspath E:\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-20\android.jar -d bin src\com\example\learn723\*.java gen\com\example\learn723\R.java

-target 生成特定 VM 版本的类文件

-bootclasspath 覆盖引导类文件的位置

-d 指定存放生成的类文件的位置

-sourcepath 指定查找输入源文件的位置

这里没什么要注意的,好吧,你的程序不能出错,或者得设置环境变量(废话)

第三步

1

dx --dex --output=E:\Workspace\learn723\bin\classes.dex E:\Workspace\learn723\bin\classes

--output=

这里要注意前后两者的地址不统一,一个是bin,一个是bin\class,这里是个很重要的不同,笔者就是在这里花费了一个中午的时间(午觉!!!)虽然在已有的地方都是bin,但通过笔者和同事的亲测,两个都是bin的话可能会出现

NEXPECTED TOP-LEVEL EXCEPTION:

链接地址

com.android.dx.cf.iface.ParseException: class name (/path/to/className) does not match path (bin/classes/path/to/className)的错误,而这里就会发现,两者的地址不同,然后根据提示进行修改

第四步

1

aaptpackage -f -M AndroidManifest.xml -S res -I

2

E:\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-20\android.jar -F bin\resources.ap_

-f 如果编译生成的文件已经存在,强制覆盖

-M 指定AndroidManifest.xml的路径

-S 指定res文件夹路径

-I 指定某个版本平台的android.jar的路径

-F 指定输出文件完整路径

第五步

1

java -cp E:\adt-bundle-windows-x86_64-20140702\sdk\tools\lib\sdklib.jar com.android.sdklib.build.ApkBuilderMain learn723.apk  -v -u -z bin\resources.ap_ -f bin\classes.dex -rf src

这里不能用

apkbuilder命令!!!

第六步

这里已经有apk了,但没有签名,所以不能安装

具体密匙制作和加签名可以脑补http://jingyan.baidu.com/article/3c48dd3491d91fe10be358f4.html

现在已经有密匙了,然后进入关键的一步,先进入密匙所在的文件夹!!!先进入密匙所在的文件夹!!!先进入密匙所在的文件夹!!!重要的事情说三遍,我也不知道为什么不在密匙所在目录命令怎么也写不成功,总是报只能有一个别名,希望大牛指点

然后代码为

1

jarsigner -verbose -keystore mydemo.keystore -signedjar -learn723s.apk E:\Workspace\learn723\learn723.apk mydemo.keystore 然后继续输入密匙密码即可

这个时候了learn723s.apk(即第一个)为加密好的,地址在密匙目录,

最后开启虚拟机

在cmd中用adb install learn723s.apk命令就可以安装成功了!!!

android命令打包,android 命令打包相关推荐

  1. 命令行开发、编译、打包Android应用程序

    Android SDK提供了一系列命令行工具,用来进行Android应用的开发.调试.打包等工作!Eclipse能够进行Android应用开发的相关工作,也是调用了这些工具而已. 只有掌握了命令下的工 ...

  2. android运行ipa,AIR 命令行打包 ipa和apk (air adt 生成 带运行环境 apk ipa)

    最近使用了一下命令行 ADT打包移动程序,效率不错留个记号 在这之前首先需要AIR3.0以上SDK,然后配置环境变量(在 lib/android/bin 文件夹中)我只配置了 Path 环境变量 然后 ...

  3. android shell 批量打包,Android执行shell命令打包

    Android执行shell命令封装 Android可直接调用Runtime执行shell命令来实现一些功能,在此进行了一个封装. 将需要执行的命令添加到一个数组,并判断是否已root,还有一个回调接 ...

  4. Python 实现自动化批量重打包Android Apps

    写在前面的话 无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程 https://w ...

  5. Mac打包Android的apk,[Mac][React Native][Android] 打包成apk

    一旦把app写好之后,最后一个步骤就是打包成apk啰 文档中会提到keytool,gradlew assembleRelease. Android打包APK Android 把包成一个APK主要需要几 ...

  6. Android Studio(十二):打包多个发布渠道的apk文件

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  7. android应用程序的混淆打包(转)

    android应用程序的混淆打包 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android- ...

  8. 使用adb命令控制Android

    adb shell input text hello //把hello这个内容传到有焦点的EditText之类的控件上 adb shell input keyevent 3 //相当于按下home键, ...

  9. android 手动 打包,android 手动打包apk

    创建工程 //MainActivity.java package com.qsc.hello; import android.app.Activity; import android.os.Bundl ...

  10. android studio gradle配置_Unity打包Android最全攻略(含完整流程及常见问题)

    洪流学堂,让你快人几步.你好,我是你的技术探路者郑洪智,你可以叫我大智. 最近写了很多AR教程,在收到的小伙伴的求助里面,超过80%都是Android打包的问题.这篇就把你Android打包问题统统搞 ...

最新文章

  1. 关于新冠肺炎的一切|回形针
  2. layui table 列覆盖
  3. java comparable Comparator 区别
  4. 杠件受力分析 第一章 杠件受力分析
  5. python超市管理系统_控制台超市系统(Python)
  6. 用css3制作旋转加载动画的几种方法
  7. 腾讯物联网操作系统正式开源,最小体积仅1.8 KB
  8. HFSS报错A geometry selection is required for selection
  9. Maven环境搭建和介绍
  10. [mock]10月4日
  11. css12个技巧,12个CSS高级技巧汇总
  12. Monorepo + lerna rush.js
  13. 【枚举·习题】拉灯游戏or费解的开关
  14. JDB调试代码 20165324 何春江
  15. 前端面试题及答案(字节跳动)(二)
  16. Word文档生成神器:开源项目poi.tl使用介绍
  17. Flutter问题集
  18. 如何获取到javasript链接的网址
  19. 计算机专业朋友圈文案,朋友圈文案文艺范简约 很美很好听的文艺句子合集
  20. 高手谈谈PR更新前站长们应该如何去做

热门文章

  1. java nio 事件_Java NIO原理及实例
  2. AndroidO Treble架构下HIDL服务Java框架实现
  3. memcached安装及.NET中的Memcached.ClientLibrary使用详解
  4. 数据结构与算法之排序(归纳总结三)
  5. “遇事不决,量子力学”?微软亚研院开源时空预测开源工具:FOST,应对各行业共性预测需求!...
  6. OpenGait:首个步态识别框架开源了!
  7. AI端部署“三问”:模型如何跑起来、跑得快、持续跑
  8. 如梦如幻,开源实时的天空特效算法!
  9. 小目标检测的福音:Stitcher,简单又有效
  10. 如何突破科研瓶颈?如何与导师自在相处?微软研究员们的读博心得