我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。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
其他回答
如果应用程序没有安装,删除文件.android_secure/smdl2tmpl。asec从SD卡。
如果文件管理器中“。android_secure”文件夹为空,请将其从PC机上删除。
在我的情况下,我已经声明我的发射器活动为android:exported="false"
<activity android:name=".MainActivity"
android:exported="false">
我最近瞄准了android 12,不得不把android:exported属性放在我的manifest组件中,但不知道该把什么作为值。将值更改为android:exported="true"有效。
对于那些使用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)
在我的情况下,我之前发布的应用程序已经通过另一个密钥签名,所以我已经卸载了它,但在我的测试手机(LG G4 H-818) 2个用户存在,所以之前的应用程序仍然安装在我的手机上,没有正确卸载!所以当我试图重新安装它时,它失败了…
所以我试图改变用户和卸载之前的应用程序,最终应用程序安装正确。
希望这对你将来有所帮助:)
我曾以各种形式遇到过这个问题,但这一次是一个新的问题:
在这种情况下,我有提供商名称冲突-相同的提供商名称存在于我的应用程序和我的另一个应用程序。