我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。

在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。

因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?

我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。


当前回答

我也解决了这个问题,

问题是我两次宣布了我的主要活动, On作为第一个要加载的活动,我还为它指定了一个意图过滤器 在下面我又声明了一遍。

只要确保你不会重复申报你的活动。

其他回答

在我的情况下,我之前发布的应用程序已经通过另一个密钥签名,所以我已经卸载了它,但在我的测试手机(LG G4 H-818) 2个用户存在,所以之前的应用程序仍然安装在我的手机上,没有正确卸载!所以当我试图重新安装它时,它失败了…

所以我试图改变用户和卸载之前的应用程序,最终应用程序安装正确。

希望这对你将来有所帮助:)

检查Android版本。

如果你安装的是非市场应用程序,和不兼容的版本,你会得到这个错误。

应用程序的目标是2.3.4 您的设备是2.2 然后你会得到这个错误。

对我来说,原因是我在同一部手机上使用不同的构建变体进行了多个构建:

所发生的事情是,其中一些构建是由我构建的,另一个是由另一个开发人员发给我的。试图安装开发人员,而我有其他构建(由我构建)导致上述错误。

所以修复很简单:删除我手机上的所有构建(不管构建变体)..然后安装我的同事发来的apk ..而且效果很好

我通过不首先签名应用程序和不使用Maven来解决这个问题。我将此添加到构建路径中。

    <plugin>
        <groupId>com.jayway.maven.plugins.android.generation2</groupId>
        <artifactId>android-maven-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
            <sign>
                <debug>false</debug>
            </sign>
        </configuration>
    </plugin>

之后,我手动签名我的应用程序:jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore /home/myself/.android/release.Keystore myapp-1.0.apk androidreleasekey

这也可能发生在制作主屏幕小部件时,并且您的小部件XML文件在其android:configure属性中指定了错误的Activity。