9

我使用 Eclipse 开发 android 应用程序,但是在运行项目时看到此错误:

Installation failed due to invalid APK file!

4

10 回答 10

8

我们看到“Invalid APK file”错误的最常见原因之一是无意中更改了AndroidManifest.xml配置,导致在您的设备上安装了重复的 APK 文件。

可能性一:版本问题。使您的最低和目标 sdk 版本更高,然后重试。

情况二:封装不匹配。包名称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 中验证的包名称完全相同。

例如com.yourdomain.yourapp

第 3 步。从您的启动器活动中检查您的包包含声明(例如MainActivity.java):

package com.yourdomain.yourapp;

如果上述解决方案不起作用,请发布您的 Logcat 以获得进一步的帮助。

于 2012-11-10T00:54:12.203 回答
8

就我而言,这是由包含我的库的 .jar 文件中的错误引起的。.jar 文件是我创建的,因此我能够修复它。以下是问题如何开始以及我如何解决的细分:

  • 我对另一个项目进行了更改(不是安装失败的项目)
  • 导出到 .jar 包含项目中的所有文件(这是错误的)
  • 生成的 .jar 替换了我的项目中已经包含的那个
  • 发生错误

要解决这个问题:

  • 重新导出的 .jar 文件,仅包含 src 文件夹
  • 重建和安装就好了。

包含所有不属于 src 文件夹的文件会导致项目和 .jar 中出现一些重复:

  • 示例:多个 androidmanifest.xml 文件,一个在本地,一个在 .jar 内

这导致 .apk 无效。希望这可以帮助某人。注意:此解决方案仅在您拥有自己更改和编译的库文件并且犯了与我包含不需要的文件夹时相同的错误时才有效。

于 2011-12-14T04:21:04.630 回答
3

在亚行上试试这个:

cd /data/local
mv tmp tmp-old
mkdir /mnt/sdcard/tmp
ln -s /mnt/sdcard/tmp ./tmp
于 2013-10-28T19:58:36.423 回答
3

完全同意@melvkim 的回答。要补充的一件事。

另外请确保您的包名称中没有使用禁止字符。例如:

错误的包名

  • com.domain.365days- 您不能以数字开头的包名称的任何部分(...)
  • com.domain._365days- (...) 也不是特殊字符

正确的包名

  • com.domain.days365- 以字母开头你的包名的所有部分

请非常仔细地查看您的 logcat。Eclipse IDE 可能不会显示任何错误或警告,但 logcat 会。

于 2013-08-14T08:52:19.917 回答
0

就我而言,问题是由于 Android 清单文件和项目构建目标 API 级别不匹配

我从 targetSdkVersion 从 19 更改为 21。

此外,通过步骤更改目标 sdk 版本given below

  1. 右键单击项目名称
  2. 选择属性
  3. 将“项目构建目标”更改为 API 级别 21
于 2014-11-05T11:16:38.940 回答
0

对我来说,这是导致此错误的另一个问题:

我的项目使用了一些嵌入到 APK 中的原生 JNI 库。为了在测试期间节省一些空间,我禁用了 lib\armeabi 版本,只留下了较新的 lib\armeabi-v7a 变体。在较新的设备上一切正常,但在较旧的 G1 上测试它导致了这个错误。

于 2012-05-12T11:48:25.963 回答
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

于 2014-07-14T14:56:36.420 回答
0

检查手机或模拟器上的平台版本(取决于您在哪里测试)必须与您在 AndroidManifest.xml 中提到的版本相同或更高。

于 2013-08-31T22:22:50.577 回答
0

我确定这是版本问题。首先检查您的模拟器/手机是否具有您正在开发的正确版本。

于 2011-11-03T17:03:05.647 回答
0

对我来说,问题是我使用了错误的文件路径。也就是说,apk文件不存在!为什么这该死的东西不能告诉我它找不到文件?啊!呃,好吧。也许这会帮助别人。仔细检查以确保您的文件路径正确!

于 2016-12-15T02:27:36.317 回答