Android 开发中出现的错误解决方法 --安装错误
2018-03-27 15:35
615 查看
在安卓开发中,当我们在安装包的时候会出现一些错误,本文将这些错误记录,待以后查询使用
Failure [INSTALL_FAILED_TEST_ONLY]
The APK file XXX.apk does not exist on disk
如果你使用Android studio 遇到这个问题,那么一般你是想对编译时生成的apk文件进行自定义命名,并且你的命名规则包含动态部分,比如,命名规则中使用了时间戳。由于gradle在执行编译命令和安装命令时有时间差,且调用了两次你的名称规则,导致编译出来的apk名称和安装时获取到的apk名称不一致,所以它就报找不到指定的apk文件了。
一般修改编译后apk文件名,在gradle是这样配置的
但是这种命名规则是到秒级的,所以每次构建和安装时获取的文件名称都不一样,每次都会报错。
解决方案:
1.遇到这个问题时,首先想到的是,如何让编译出来的apk文件名和要安装的文件名相同,而gradle 执行安装的task是installRelease,那么就是如何动态修改installRelease 命令中指定安装的文件名。虽然这是一个方向,但是我并不会耶没有找到修改的方法。最简单的办法就是固定apk的文件名,至少不要使用时间戳这种容易改变的命名规则。
不同之处在于outputFile
和
通过编译执行比较,发现,前者即用来编译出apk文件,也用于安装;而后者,只是编译出apk文件。
Failure [INSTALL_FAILED_TEST_ONLY]
The APK file XXX.apk does not exist on disk
1.Failure [INSTALL_FAILED_TEST_ONLY]
平台版本是android 7.0,在adb install *.apk 会提示下面的错误: Failure [INSTALL_FAILED_TEST_ONLY] 方法1: 修改AndroidManifest.xml 中android:testOnly="true" 改成 android:testOnly="false",或者直接去掉。 方法2: adb push *.apk /tmp adb shell pm install -t /tmp/*.apk 方法3: adb install -t *.apk 方法3已测,没问题。
2.The APK file XXX.apk does not exist on disk
参考文章:The APK file does not exist on disk如果你使用Android studio 遇到这个问题,那么一般你是想对编译时生成的apk文件进行自定义命名,并且你的命名规则包含动态部分,比如,命名规则中使用了时间戳。由于gradle在执行编译命令和安装命令时有时间差,且调用了两次你的名称规则,导致编译出来的apk名称和安装时获取到的apk名称不一致,所以它就报找不到指定的apk文件了。
一般修改编译后apk文件名,在gradle是这样配置的
android { applicationVariants.all{variant-> variant.outputs.each{output-> if(variant.buildType.name.equals('release')) { def oldFile = output.outputFile def newName = 'dayjoke_V'+defaultConfig.versionName+'_'+getDate()+'-release.apk'; output.outputFile = new File(oldFile.parent, newName) } } } } def getDate() { def date = new Date() def formattedDate = date.format('yyyy_MM_dd_HH_mm_ss') return formattedDate }
但是这种命名规则是到秒级的,所以每次构建和安装时获取的文件名称都不一样,每次都会报错。
解决方案:
1.遇到这个问题时,首先想到的是,如何让编译出来的apk文件名和要安装的文件名相同,而gradle 执行安装的task是installRelease,那么就是如何动态修改installRelease 命令中指定安装的文件名。虽然这是一个方向,但是我并不会耶没有找到修改的方法。最简单的办法就是固定apk的文件名,至少不要使用时间戳这种容易改变的命名规则。
android { applicationVariants.all{variant-> variant.outputs.each{output-> if(variant.buildType.name.equals('release')) { def oldFile = output.packageApplication.outputFile def newName = 'dayjoke_V'+defaultConfig.versionName+'_'+getDate()+'-release.apk'; output.packageApplication.outputFile = new File(oldFile.parent, newName) } } } } def getDate() { def date = new Date() def formattedDate = date.format('yyyy_MM_dd_HH_mm_ss') return formattedDate }
不同之处在于outputFile
output.outputFile
和
output.packageApplication.outputFile
通过编译执行比较,发现,前者即用来编译出apk文件,也用于安装;而后者,只是编译出apk文件。
相关文章推荐
- Visual Studio 2015 开发Android Cordova出现unsupported major minor version 52.0错误的解决方法
- Android开发笔记(2)启动模拟器出现错误"Failed to allocate memory: 8"的解决方法
- Android安装软件时出现的错误提示:INSTALL_FAILED_CONTAINER_ERROR的解决方法
- android开发中出现Only the original thread that created a view hierarchy can touch its views.错误的解决方法
- Android系统移植与调试之------->安装apk时出现错误Failure [INSTALL_FAILED_DEXOPT]问题解决的方法
- Android之机端安装apk出现INSTALL_FAILED_INSUFFICIENT_STORAGE错误的解决方法
- 【ARM-Linux开发】wubi.exe安装Ubuntu14.04出现为/检查磁盘时发生严重错误的解决方法
- Eclipse搭建Android开发环境之ADT安装常见错误及解决方法
- 使用Eclipse开发Android出现java.lang.NullPointerException错误的解决方法
- asp.net办公自动化系统开发实例导航的安装出现错误的解决方法
- Android 开发中出现的错误解决方法 --编译错误
- 数据库开发基本操作-安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法
- 安装vs2005 sp1 出现错误1718,文件未通过数字签名检查,解决方法
- 在GHOST的WINXPSP2安装SQL SERVER2000个人版时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装之前,必须重新启动计算机。”错误的解决方法
- 【整理】安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法
- 安装ArcGIS时出现1904错误解决方法
- AntiARP安装时出现windows installer package错误解决方法
- 在GHOST的WINXPSP2安装SQL SERVER2000个人版时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装之前,必须重新启动计算机。”错误的解决方法
- SQL Server安装过程中出现“以前的某个安装程序已在安装计算机上创建挂起的文件操作,运行程序前必须重启计算机”错误的解决方法
- 安装VS2005补丁出现错误1718的解决方法