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

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

首先是对于各大手机通用的,问题存在原因:
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后,重新安装你要安装的app02.如果卸载旧版本后依然安装不上,检查以下是否有应用残留文件夹,删除相应文件夹后重新安装

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

应用卸载不彻底

这种情况的表现是,你的手机上已经没有和你安装的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 28defaultConfig {applicationId "com.markton.spacertk"minSdkVersion 19targetSdkVersion 28versionCode 10versionName "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:\data\SpaceRTK.apk

使用aapt工具不仅可以查看应用包名,而且可以查看应用的其他一些信息,比如版本号,版本名称、应用权限等等。

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

adb uninstall apk的包名

这里apk的包名就是你的应用的APK的包名。出现提示Success即说明卸载成功。

此时再次运行安装包就可以成功。

android studio生成的apk文件无法安装相关推荐

  1. Android Studio项目打包:3、Android Studio生成的apk究竟在哪里?(非正式打包)

    以前11年那会刚干Android开发的时候用的开发工具是eclipse,现在大家都用的Android Studio, 当有的时候我们需要给相关人员演示apk效果,这时我们只需要快速运行打包apk而不是 ...

  2. android studio生成Jni头文件 java10,java11删除了javah,改用javac直接用源码生成jni头文件。 java8是用javah

    android studio生成Jni头文件 鼠标放本地方法上去,点提示来创建. java10,java11及以上   生成jni头文件 java10,java11删除了javah.改用javac直接 ...

  3. apk ionic 破损_cordova – ionic build android不生成任何.apk文件或错误

    我正在发布我的第二个应用程序,并且在发布 android时出现问题. 当运行cordova build –release android它应该根据docs和之前的经验在platforms / andr ...

  4. android studio生成的apk安装失败,在模拟器上却可以运行。

    这里遇到的情况是,真机系统为android12, 安装失败. 检查AndroidManifest.xml文件,是否有红色框中的内容,若没有则添加. 是否有红色框中的内容,若没有则添加.

  5. uniapp开启微信支付、支付宝支付 + Android Studio离线打包APK文件 (前端部分)

    效果图 已完成,可以调起微信app进行支付.支付宝app也可以. @20221203 流程 步骤 HBuilderX项目开启权限 (按照手册选择对应支付服务商需要的权限) 手册:https://nat ...

  6. android studio生产签名文件,Android Studio 生成 keystore 签名文件

    Android Studio 生成 keystore 签名文件 常见 SSL 证书格式 : .DER .CER,文件是二进制格式,只保存证书,不保存私钥. .PEM,一般是文本格式,可保存证书,可保存 ...

  7. Android Studio生成APK自动追加版本号 自定义apk名称 指定签名证书文件

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50538148   文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一 ...

  8. android生成apk流程,Android Studio生成APK的基本流程

    Android Studio生成APK的基本流程 2020年08月14日 | 萬仟网移动技术 | 我要评论 Android Studio生成APK流程修改版本号和文件名安全加固(可选)生成签名apk修 ...

  9. Android Studio SVN配置忽略文件 1.用Android Studio创建一个项目,会在根目录和Module目录下自动生成.gitignore文件,貌似是Git的配置文件,

    Android Studio SVN配置忽略文件 1.用Android Studio创建一个项目,会在根目录和Module目录下自动生成.gitignore文件,貌似是Git的配置文件,和SVN没有关 ...

  10. Android项目实战(三十一):异步下载apk文件并安装(非静默安装)

    前言: 实现异步下载apk文件 并 安装.(进度条对话框显示下载进度的展现方式) 涉及技术点: 1.ProgressDialog   进度条对话框  用于显示下载进度 2.AsyncTask     ...

最新文章

  1. 数值分析上机题matlab线性方程组,数值分析上机实验报告 - 线性方程组部分实验题1...
  2. python中break可以用在for和if中吗_Python的for和break循环结构中使用else语句的技巧...
  3. 在64位linux下编译32位程序
  4. MyBatis中传递数组参数和List参数时if-test判空和判断长度的写法
  5. HDU 1317 XYZZY(floyd+bellman_ford判环)
  6. 【算法题】Multiples of 3 and 5
  7. java开发安装mysql_从零开始搭建Java开发环境第二篇:如何在windows10里安装MySQL
  8. oracle比较两个表数据的差异
  9. Python Web框架Django学习(二)
  10. DaDa英语宣布12月31日起全面停止所有外教服务
  11. 单向流动的拓扑结构_只允许数据在传输介质中单向流动的拓扑结构是
  12. js 父子标签同时设置onclick,子标签触发父标签onclick解决办法
  13. 数据同步一致性_微服务架构:利用事件驱动实现最终一致性
  14. Redis分布式锁为什么要设置超时时间
  15. jsp:setProperty的用法
  16. 芝加哥打字机_芝加哥打字机不是打字机
  17. 《数据库原理与应用》马春梅 禹继国 黄宝贵 祝永志 编著 P30 六个表的实现
  18. 【整理分享】2019年▪尔雅通识课▪《移动互联网时代的信息安全与防护》▪期末考试答案
  19. gitlab 的备份与恢复
  20. [ZT]精彩的国外育儿教育读本,图文并茂

热门文章

  1. 解决egret引擎List虚拟布局不同高度Item对象重用时导致的布局异常问题
  2. C++(一)#pragma once用法
  3. java 无法加载主类
  4. mysql数据库的基本管理
  5. python 爬虫 中乱码问题0xb5 和b'\x1f\x8b\x08
  6. 七代处理器装win7_Intel7代处理器 win10重装win7后无法安装显卡声卡驱动的解决方案 | A小可私人狗窝...
  7. 安装AutoCAD 2015提示net 4.5错误的解决方法
  8. Axure使用教程(二)、动态面板
  9. wps实现冻结首行的方法
  10. 计算机内存一代,内存条一代二代三代的区别