我刚刚试图在Eclipse中使用现有代码创建一个Android项目。一切似乎都很好,没有错误提示。我还可以在虚拟设备上测试它。所以我尝试通过导出未签名的应用程序包来创建一个apk。最终应用程序无法安装到我的安卓设备,只是提示“应用程序未安装”消息!我该如何修复它?谢谢。
cordova build --release android
命令,但遇到了相同的错误。后来我发现应该使用cordova build android
命令来创建debug apk文件。希望这能帮助到其他人。我也遇到了这个问题,尽管我使用了cordova build android
。原来我的问题如下:
我之前安装了另一个phonegap应用程序,在构建时没有更改它在config.xml中的widget id。因此,widget id 仍然是"com.phonegap.helloworld"。
现在,在构建我的新应用程序时,我也没有更改widget id。所以两个应用程序都具有相同的widget id。看起来是不允许的。因此,一种潜在的解决方案是更改widget id,使其不会干扰您手机上当前安装的其他任何应用程序。或者,卸载可能与您的新应用程序干扰的任何东西(也许是您早期制作的某些phonegap应用程序,就像我的情况一样)。
以下是导致我得出这个解决方案的内容:https://github.com/phonegap/phonegap-plugin-push/issues/922
如果您要更新/覆盖现有的应用程序,请首先使用手机的应用程序管理器将其删除。
在Android设备上,您只能安装已签名的应用程序。实际上,应用程序的调试版本是使用调试密钥签名的。这意味着您必须签署您的发布应用程序,即使您只是尝试在本地智能手机上安装它。
卸载其他版本的应用程序。
您需要使用keytool生成my-release-key.keystore文件:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Cordova内置了一种快速签署Android应用程序的方法。通过CLI部署应用程序时进行签署。
cordova run android --release -- --keystore=my-release-key.keystore --storePassword=password --alias=alias_name --password=password --packageType=apk
现在您应该拥有最终产品:app-release.apk
*您可以使用--packageType=bundle将其导出为.aab格式
*或者,您可以在构建配置文件(build.json)中指定它们:https://cordova.apache.org/docs/en/10.x/guide/platforms/android/#using-buildjson
{
"android": {
"debug": {
"keystore": "../android.keystore",
"storePassword": "android",
"alias": "mykey1",
"password" : "password",
"keystoreType": "",
"packageType": "apk"
},
"release": {
"keystore": "../android.keystore",
"storePassword": "",
"alias": "mykey2",
"password" : "password",
"keystoreType": "",
"packageType": "bundle"
}
}
}
首先,请确保您拥有足够的内部存储空间(这应该不仅仅是应用程序大小,因为应用程序还需要存储数据)。应用程序的存储空间与内部大容量存储器不同。您可以在“设置”>“存储”下找到它,查找“应用程序”标签。
此外,如果应用程序大小为20 MB,则至少保持50 MB的空闲空间,因为除了应用程序存储空间外,Android在内部存储空间不足时也会变慢。
如果您正在尝试更新/覆盖已安装的应用程序,请先尝试删除它。
谢谢 AB
就我所知... 在创建了一个访客账户之后,我开始收到“应用程序未安装”的消息,原因不明。删除访客账户似乎解决了这个问题!