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

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

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

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


当前回答

确保考虑到以下建议:

Your build variants and Flavors should be same(App installed and new one), usually release Signature file must be the same(*.jks file) The version you set in build.gradle or AndroidManifest have greater value compared to current version(it is recommended to set version in build.gradle) URL is correct(doesn't have typo) and server is reachable(WebService/WebMethod/WIFI is running/available and ...) File downloaded completely File saved correctly into desired directory Setting for Data and Type in setDataAndType is correct

其他回答

我的问题和@Lunatikzx的问题类似。由于错误的权限标记被写入应用程序的属性:

<application
    android:permission="android.permission.WRITE_EXTERNAL_STORAGE"
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:testOnly="false"
    android:debuggable="true">

什么为我修复它是改变权限标签,像这样单独的标签:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我也解决了这个问题,

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

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

在我把手机从Android Pie升级到Android 10之前,在实体手机上加载调试应用程序进行测试一直很可靠。在那之后,每当我试图侧面加载应用程序时,就会出现“应用程序未安装”错误。

根据我的AndroidManifest.xml中的警告,我从…

<application
    android:name=".App"
    android:allowBackup="true" ... />

……

<application
    android:name=".App"
    android:allowBackup="false" ... />

在那之后,我就可以侧面加载我的应用了——只有一次。然后,我又遇到了同样的“应用程序未安装”错误。通过将allowBackup更改为true,它可以再次工作(至少一次)。

从答案的数量和答案的变化可以明显看出,这个问题有很多原因。我把这个分享给大家,希望能帮助到其他人。

如果你尝试了上面所有的答案,没有一个有效,你可能想试试这个:

如果你的构建变量是“调试”,那么你应该在应用程序构建gradle的buildTypes下添加这个,以便应用程序安装到你的设备上:

debug {
    minifyEnabled false
}

在我的情况下,我已经声明我的发射器活动为android:exported="false"

<activity android:name=".MainActivity"
            android:exported="false">

我最近瞄准了android 12,不得不把android:exported属性放在我的manifest组件中,但不知道该把什么作为值。将值更改为android:exported="true"有效。