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

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

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

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


当前回答

我知道这是一个老帖子,但对新用户可能有用。我也遇到了同样的问题:我的应用程序在调试时工作得很好。当我签署APK时,我得到了同样的消息:“应用程序未安装”。

我修复了卸载JDK(我使用的是JDK -6u14-windows-x64)并安装了一个新的JDK (JDK -6u29-windows-x64)。导出并再次签署APK后,一切正常!

恢复,我的问题是在JAVA版本。谢谢的甲骨文! !

其他回答

我发现,如果我用compileSdkVersion构建我的应用程序,buildToolsVersion和targetSdkVersion都设置为默认值30在我的构建。Gradle文件,那么应用程序将无法安装在我的手机上。但是,如果我把它们改回版本29,它就可以工作了。问题是,从SDK 30开始,你需要选择V2 jar签名。有关更多信息,请参阅为什么Android SDK 30生成无效的APK文件?

我也遇到了同样的问题,下面是解决方法:转到Manifest文件,确保你有“Debuggable”和“Test Only”属性设置为false。这对我很有用:)

对于那些使用Android Studio 3的人。

Suryanarayana Reddy的答案是正确的,尽管它没有说明解决问题的步骤,因此。

在你的AndroidManifest.xml的应用标签下添加testOnly="false"和android:debuggable="true",就像这样:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:testOnly="false"
    android:debuggable="true"
    >

然后在AndroidStudio的菜单栏Build > Build APK(s)

我通过不首先签名应用程序和不使用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。