android studio生成的apk文件无法安装 - Go语言中文社区

android studio生成的apk文件无法安装


这是一篇深夜随笔,没有很多截图但我尽可能用引用他人文章和自己的话将问题讲述明白

安装不成功首先得看不成功的提示,小米的和华为的因为使用的人多,我就用这两种机子来举例经常出现的问题。

首先是对于各大手机通用的,问题存在原因:
1、安装的软件,垃圾占用内存过多,没有安装余地,请删除不需要的软件,清理内存释放空间。
2、也是新手最常出现的问题,那就是自己生成的apk文件没有jks的key,换句话说就是不会打包apk文件以及没有加入key打包

第二点经常出现在连着手机下载调试可以用后用手机自带的分享功能分享到别的手机后无法安装。

首先我们得学会怎么正确生存apk文件。参考链接【值得注意是原文将jks打成了jsk】

1、在Build中找到生成release的选项:

在这里插入图片描述

2、没有。jks时则创建一个。(有jks就跳第四步,选择建好的jks)

在这里插入图片描述

3、创建。jks,两个密码可以一直也可以不一致

在这里插入图片描述
特别提醒一点,到这一步点击finish之后,可能会出现warning,想解决呢则看我的另外一篇博客
android studio生成JKS时候提示:JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore

按我目前的使用的话似乎不解决也不影响。
4、创建好。jks后会返回到这个界面

在这里插入图片描述
在这里插入图片描述

5、生成Apk,“Finsh”后耐心等待,看AndroidStudio内的提示信息!

(两个都做好勾上选中,第一个不选中,打包处理的apk无法安装;第二个不选中,到Android7.0系统内会出现问题)

对于小米,比较特别的是:小米系统出于安全考虑,默认的安装软件要来自于小米商店下载,安装“未知来源”的软件是不允许的,需要设置允许安装未知来源的应用,需要在“设置”-“其他高级设置”-“安全与隐权私”-“未知来源”-开关打开即可。。

对于华为,比较特别的是:提示更新包与已安装应用的签名不一致。如下图
在这里插入图片描述

这种情况一般出现在第一次安装后卸载了,第二次再安装就安装不了了。
这时候我就引用一篇文章来告诉你们了
首先你会发现按照手机给出的处理建议来根本解决不了。因为第一条卸载当前已安装版本再重装不可行,但你已经卸载了,没有已安装版本;第二条:说针对Android6.0以上的版本,要到"设置">“应用管理"里面去卸载。在"应用管理"里面根本找不到我这个应用,所以也就没法点击"为所有用户卸载”。怀疑是不是卸载之后还有缓存,导致安装不上?试着重启手机试一下吧,结果还是安装失败。

先附上原文链接1原文链接2
我将两篇文章结合起来给大家说明白

首先安装不了的原因是 手机上存在旧版本的app,新旧版版本签名冲突

解决方案:

01.卸载旧版本的app后,重新安装你要安装的app

02.如果卸载旧版本后依然安装不上,检查以下是否有应用残留文件夹,删除相应文件夹后重新安装

但是刚刚我们已经看过了,所有原因是

应用卸载不彻底

这种情况的表现是,你的手机上已经没有和你安装的app的类似应用了(这里的类似,是指你app的开发以及测试版的一系列版本),同时,你也已经删除了相关的应用文件夹,这种情况是由于应用卸载不彻底导致的,解决方案如下:

前提:手机需要通过数据线连接电脑,处于传输文件,开发者模式的打开状态

1、下载两个工具adb和aapt并配置,下载完成后解压文件夹,并在环境变量中配置
但是呢,adb是Android SDK自带的一个工具,目录一般为:sdk安装目录>platform-tools>adb.exe.直接在dos下运行adb命令可能会提示’adb’ 不是内部或外部命令,也不是可运行的程序或批处理文件。那是因为我们没有把运行目录设置到adb.exe所在的文件夹,这也是我们为什么一般将adb.exe的路径加到系统的环境变量当中的原因。

在这里插入图片描述
添加之后在任何目录下都能访问adb.exe。配置好adb之后,在cmd下运行输入adb,回车之后如果出现如下的adb的版本信息,则说明环境变量已经配置好了,可以正常使用。

在这里插入图片描述

第二步就是查看apk的包名了
可以从AndroidStudio下你的项目的模块级的build.gradle下查看,注意目录,先选project,展开app,选择build.gradle(图片选中蓝底的选项)不是根目录的bulid
在这里插入图片描述
在这里插入图片描述

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28

    defaultConfig {
        applicationId "com.markton.spacertk"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 10
        versionName "1.3.3"
        multiDexEnabled true
    }
}

这里的applicationId就是你的应用包名。
当然,如果你只有一个安装包,怎么知道查看你的包名呢?可以直接在手机上使用腾讯GT调试工具查看。下载地址

在这里插入图片描述
另外还有一种稍微麻烦一点的办法,那就是使用aapt工具。aapt工具也是Android SDK自带的工具,目录位于:sdk安装目录>build-tools>29.0.1(平台版本号,一般为数字)>aapt.exe.同样可以和adb一样添加环境变量。
运行如下命令可以查看应用包名:

aapt dump badging <file_path.apk>

例如,我的安装包放在F盘的data目录下,那么就是:

aapt dump badging F:dataSpaceRTK.apk

在这里插入图片描述使用aapt工具不仅可以查看应用包名,而且可以查看应用的其他一些信息,比如版本号,版本名称、应用权限等等。

最后一步当然就是卸载干净了!!!!!
首先把手机用数据线和电脑相连,同时打开开发人员选项按钮,运行USB调试,然后在cmd下执行卸载命令:

adb uninstall apk的包名

这里apk的包名就是你的应用的APK的包名。出现提示Success即说明卸载成功。
在这里插入图片描述
此时再次运行安装包就可以成功。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/azj2019/article/details/105912097
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-22 10:48:04
  • 阅读 ( 706 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢