我写了一个Android应用程序,它不使用依赖项或模块,只有一个活动,并且只有一个布局文件。
如何在不使用Gradle(或其他“构建系统”或“依赖关系管理”软件)的情况下在命令行上构建我的应用程序的apk文件?
答案 0 :(得分:16)
如果您不想使用ant / gralde构建,请使用以下步骤手动构建apk。但您必须至少安装Android SDK。
从R.java
aapt
使用javac
将所有java源代码编译为*.class
使用dx
将所有*.class
转换为dex
文件,例如输出为classes.dex
从资源,资源和AndroidManfiest.mk
创建APK的初始版本,例如输出为MyApplication.apk.unaligned
使用aapt
将步骤3中生成的classes.dex
添加到MyApplication.apk.unaligned
使用jarsigner通过调试或发布密钥对MyApplication.apk.unaligned
进行签名
使用zipalign
来对齐最终的APK,例如,如果使用发布密钥签名,则输出为MyApplication-debug.apk
或MyApplication-release.apk
完成
我创建了一个示例脚本来执行上述所有操作,请参阅here
实际上,有些文章已经讨论过这个主题,请参阅以下链接。
https://www.apriorit.com/dev-blog/233-how-to-build-apk-file-from-command-line
https://spin.atomicobject.com/2011/08/22/building-android-application-bundles-apks-by-hand/
答案 1 :(得分:1)
alijandro 给出了一个完美的答案。我设法编写简单的ANT脚本,使用AdMob构建生产APK,无需使用gradle。一些有用的评论:
如果你想混淆类,你必须对已编译的类进行jar(在javac
和dx
步骤之间)并在其上运行proguard
对于AdMob
,您必须从zip档案中提取以下jar(例如
C:\Users\<User>\AppData\Local\Android\sdk\extras\google\m2repository\com\google\android\gms\play-services-ads\10.2.6\play-services-ads-10.2.6.aar
):
这些档案应在javac
和dx
AdMob
,还有其他几个简单的配置步骤 Gradle
对android项目造成了很大的麻烦,所以自己的脚本对于即将投入生产的项目来说就像是一个单一的解决方案
答案 2 :(得分:0)
简短的回答是: 你不能
长期是:
创建apk的过程并不像接缝那么容易。 https://developer.android.com/studio/build/index.html
因此,您不仅需要:
但做得很好,我真的mean it
有一点。
如果您使用Android studio
更好的是,您可以使用简单的命令来运行这些任务
./gradlew assembleRelease
答案 3 :(得分:0)
尝试使用此命令从命令行构建带有支持库的应用程序。 https://github.com/HemanthJabalpuri/AndroidExplorer