赞
踩
在项目实践时打包APP,查找了许多资料,发现CSDN上此块内容比较散乱,便将相关打包过程与问题总结汇总,特别时像我一样使用鸿蒙操作系统开发的小白,一定要注意关闭纯净模式!
主要资源参考:
Android Studio 打包APK(详细版)
模拟机中的APK版本是debug版本,它是运行时生成的,不是打包生成的
查看方式:
把当前项目切换成Project,然后找到build文件夹。只要你的项目运行了,就会生成这个文件夹
注意:
此时你可以将这个app-debug.apk复制,然后通过QQ发送到你自己的手机上,然后你在手机上下载上下载试着安装一下,你看能不能行。
当然是不行的,只有release版本的APK才能安装在自己的手机上。
打包
点击导航栏的Build→Generate Signed Bundle / APK…
这里需要一个商店的key,因为没有,所以创建一个新的,点击Create new…
首先指明生成的jks文件的路径,点击这个文件夹图标。
然后输入这个jks和别名的一些相关信息,上方的商店密码和别名密码可以设置为一样的,这样便于记忆,只不过安全系数就降低了。我上面设置的是123456,信息都设置好了之后,点击OK。
如果出现这个弹窗,你可以不用担心,点击OK。
这里勾选上记住密码。
选择release,下面两个都勾选上,然后点击Finish。
当你看到屏幕的右下角出现这个提示时,说明你的APK已经生成了,你可以在你的app下看到多了一个release的文件夹,里面就是app-release.apk包,下面你可以复制发到手机上,然后下载,手机上是可以安装的。
解决:
在build.gradle中,设置
lintOptions {
checkReleaseBuilds false
abortOnError false
}
注意要加在android类里面
首先在As的build.gradle里面配置:
signingConfigs { //debug包 debug { storeFile file("X:\\XXX.jks") storePassword 'XXX' keyAlias 'XXXXX' keyPassword 'XXXXXXX' } //release包 release { storeFile file("X:\\XXX.jks") storePassword 'XXXXX' keyAlias 'XXXX' keyPassword 'XXXXXXXX' } } //加入到android{}里
至于jks的位置,在项目最外层:
参考链接:As跑的项目和打包的项目apk签名不一致
1.Root,然后在data目录下找到对应的包名文件夹完整删除。
2.不愿意root的,可以使用adb命令删除。
(1)adb配置,请百度
(2)使用:
adb uninstall + 要卸载应用的包名,然后你就可以安装了,手动安装或adb命令皆可。
adb install + 文件名
下面介绍adb的配置与使用
仍然不行,目前暂定是鸿蒙系统的不兼容性,在安卓手机中尝试可以,在鸿蒙手机中尝试可以,但是在调试手机中尝试也不行
1、产生该问题的原因
为了高安全性,但凡从外部安装的应用都会提示这个,得需要关闭纯净模式。这里顺便提醒一下,用户最好从华为认可的渠道下载及安装应用。另外,也不排除要安装的应用是损坏的。
2、解决方法
以下解决方法由华为技术支持提供:
如果使用鸿蒙系统外部安装应用包需要关闭纯净模式,具体路径:设置—系统和更新—纯净模式—退出。
说明:
鸿蒙系统在软件安装方面提供纯净模式,当开启了这个模式,所有应用必须从华为应用商城中安装。当关闭这个模式后,开发者或者用户可以通过第三方进行软件安装。
从上面的操作中,你已经知道了一些内容,而在基本的开发中也是会用到的,而为了更好区别不同的包名,常用会给apk进行一个重命名,让你一眼就知道这个apk是哪个项目的。
修改app下的build.gradle
// 自定义打包名称
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "GenerateAPK.apk"
}
}
添加位置如下图所示,在android{}闭包中
添加后记得Sync一下,然后重新打一个包
只要修改这一句话就可以了。
outputFileName = "GenerateAPK_${buildType.name}.apk"
buildType.name就表示构建的类型,使用$来修饰。下面依次打一个release和debug包看看。
现在你可以轻松的分辨版本了,但是这就够了吗?实际的开发中其实对于Android的版本也是有关系,比如你要升级迭代APK,那么你的版本就要比之前的版本要高。而目前这个APK上并不能看出来当前是多少版本,因此这也是需要显示的。
再修改一下
outputFileName = "GenerateAPK_${buildType.name}_v${versionName}.apk"
versionName就是你的版本名称,v就表示版本,现在版本名称是1.0。
那么现在打个包试一下看是不是会多一个1.0。
在android{}闭包外增加
//构建时间
def generateTime() {
return new Date().format("yyyy_MM_dd_HH_mm_ss")
}
outputFileName = "GenerateAPK_${buildType.name}_v${versionName}_${generateTime()}.apk"
下面打包看一下。
在manifests/AndroidManifest中找到关于图标icon的配置,修改之,将之改成新添加的一套图标的名字即可。
参考链接:打包的细节优化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。