Phonegap Android 应用程序“应用未安装”

5

我刚刚试图在Eclipse中使用现有代码创建一个Android项目。一切似乎都很好,没有错误提示。我还可以在虚拟设备上测试它。所以我尝试通过导出未签名的应用程序包来创建一个apk。最终应用程序无法安装到我的安卓设备,只是提示“应用程序未安装”消息!我该如何修复它?谢谢。

7个回答

19
我曾使用CLI创建apk文件时,使用cordova build --release android命令,但遇到了相同的错误。后来我发现应该使用cordova build android命令来创建debug apk文件。希望这能帮助到其他人。

5

我也遇到了这个问题,尽管我使用了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


当你在不同的项目中工作时,很容易忘记具有相同小部件 ID 的另一个应用程序。谢谢! - Asqan

3
从 bin 文件夹中拿出 apk 并尝试在设备上安装...不是从导出未签名包创建 apk。请确保您有足够的内部存储空间(这应该超过应用程序大小,因为应用程序也需要存储数据)。

6
什么是“bin文件夹”?我只有由PhoneGap Build生成的apk文件。 - Arnold Roa
如果你从bin文件夹中获取它,它可以工作,但如果你通过phone-gap网站构建它,则无法工作。 - Braj
内存不足。谢谢! - Arman Karimi
2
据我所见,使用“--release”创建的未签名APK无法在设备上安装。相反,调试构建是允许的。如果要安装发布版本,则需要对其进行签名,没有其他选择。 - benzkji

1

如果您要更新/覆盖现有的应用程序,请首先使用手机的应用程序管理器将其删除。


0

在Android设备上,您只能安装已签名的应用程序。实际上,应用程序的调试版本是使用调试密钥签名的。这意味着您必须签署您的发布应用程序,即使您只是尝试在本地智能手机上安装它。

  1. 卸载其他版本的应用程序。

  2. 您需要使用keytool生成my-release-key.keystore文件:

    keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

  3. 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"
        }
    }
}

0

首先,请确保您拥有足够的内部存储空间(这应该不仅仅是应用程序大小,因为应用程序还需要存储数据)。应用程序的存储空间与内部大容量存储器不同。您可以在“设置”>“存储”下找到它,查找“应用程序”标签。

此外,如果应用程序大小为20 MB,则至少保持50 MB的空闲空间,因为除了应用程序存储空间外,Android在内部存储空间不足时也会变慢。

如果您正在尝试更新/覆盖已安装的应用程序,请先尝试删除它。

谢谢 AB


谢谢。这个应用程序非常小,只有2.2MB的大小。我相信设备的内存足够运行它。 - wing suet cheung

0

就我所知... 在创建了一个访客账户之后,我开始收到“应用程序未安装”的消息,原因不明。删除访客账户似乎解决了这个问题!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接