我使用Eclipse开发Android应用程序,但是当运行项目时会看到这个错误:
Installation failed due to invalid APK file!
答案 0 :(得分:8)
在我的情况下,这是由我的库中包含的.jar文件中的错误引起的。 .jar文件是我创建的文件,因此我能够修复它。以下是问题如何开始以及如何解决问题的细分:
修复它:
包含所有不属于src文件夹的文件会导致项目和.jar中的一些重复:
这导致.apk无效。希望这有助于某人。注意:此解决方案仅在您拥有自己更改和编译的库文件时才会起作用,并且与我在不包含不需要的文件夹时犯了同样的错误。
答案 1 :(得分:8)
我们看到“无效的APK文件”错误的最常见原因之一是由于无意中更改了AndroidManifest.xml
配置,导致在您的设备上安装重复的APK文件。
可信度1:版本问题。使您的最低和目标sdk版本更高,然后重试。
可信度2:包不匹配。 AndroidManifest.xml
中的包名称与您的活动相关联的实际包裹不匹配。
解决此问题的三个步骤:
步骤1.检查AndroidManifest.xml
。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yourdomain.yourapp"
android:versionCode="1"
android:versionName="1.0" >
步骤2.确认您的src文件夹中的包名与您在步骤1中验证的包名完全相同。
e.g。 com.yourdomain.yourapp
步骤3.检查启动器活动中的包裹包含声明(例如MainActivity.java
):
package com.yourdomain.yourapp;
如果上述解决方案无效,请发布Logcat以获得进一步的帮助。
答案 2 :(得分:3)
完全同意@melvkim的回答。有一点要补充。
另外,请确保您的包名中不使用禁用字符。 E.g:
包名错误
com.domain.365days
- 你不能用数字(...)com.domain._365days
- (...)也不是特殊字符更正包名称
com.domain.days365
- 以字母请仔细查看您的logcat。 Eclipse IDE可能不会显示任何错误或警告,但logcat将会显示。
答案 3 :(得分:3)
在ADB上试试这个:
cd /data/local
mv tmp tmp-old
mkdir /mnt/sdcard/tmp
ln -s /mnt/sdcard/tmp ./tmp
答案 4 :(得分:0)
我确定这是版本问题。首先检查您的模拟器/手机是否具有正在开发的正确版本。
答案 5 :(得分:0)
对我来说,导致此错误的是另一个问题:
我的项目使用嵌入到APK的一些原生JNI库。为了在测试期间节省一些空间,我禁用了lib \ armeabi版本,只保留了较新的lib \ armeabi-v7a变体。一切都在较新的设备上运行良好,但在较旧的G1上进行测试会导致此错误。
答案 6 :(得分:0)
检查手机或模拟器上的平台版本(取决于您测试的位置)必须与您在AndroidManifest.xml中提到的版本相同或更高。
答案 7 :(得分:0)
就我而言,我通过更改AndroidManifest.xml
解决了这个问题我改变了
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
到
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="20" />
因为eclipse给了我一个警告,也没有针对最新版本的Android。
我使用的是最新的Eclipse SDK v23 我的设备是Nexus 7 2012 KitKat 4.4.4
答案 8 :(得分:0)
在我的情况下,问题是由于Android清单文件和项目构建目标API级别不匹配所致
我从targetSdkVersion从19变为21。
此外,通过步骤given below
答案 9 :(得分:0)
对我来说,问题是我使用了感兴趣的文件的错误路径。换句话说,apk文件不存在!为什么不能告诉我它无法找到文件?哎呀!呃,好吧。也许这会帮助别人。仔细检查以确保您的文件路径正确无误!