2010-05-12 37 views
2

今天我决定开始开发Android OS。我去了他们的网站,下载了所有必需的软件(Eclipse,Android SDK,Eclipse的ADT插件等)。我遵循提供的“Hello World”教程(link text)。我使用Android SDK 2.1。该程序几乎完美无缺地工作。它在Android模拟器上运行良好,但不安装在任何Android手机上。我不拥有Android手机,所以我有三个朋友试图在他们的电脑上安装该程序。
我们所用的电话是:Android“Hello World”教程程序。错误:[解析错误]解析包时出现问题

  1. 根植G1运行2.1
  2. 的Droid运行2.1
  3. 另一个Droid的运行2.1

我通过电子邮件发送.apk文件到自己的Gmail和访问它通过Android模拟器。它运行并安装包很好。然而,当我的朋友试图安装在他们的手机上,他们都遇到了这个错误: “[解析错误]有一个问题解析包”

我想知道如果任何人有任何建议什么可能是错的。谢谢你的帮助。

+0

你签署apk? – Macarse 2010-05-12 11:44:48

+0

您使用的软件包名称是什么?您可能选择的是与核心Android套件冲突的内容。 – 2010-05-12 13:53:24

+0

.apk名称是“HelloAndroid2.apk”。我确实签了包裹。我使用eclipse中的导出向导来创建密钥库,并使用创建的密钥库对包进行签名。 – ConfusedDeveloper 2010-05-12 15:06:26

回答

2

你是如何安装软件包的?
您应该:

  • 从Android Market安装AppManager。
  • 获取SD卡上的.apk文件。
  • 启动AppManager并点击“菜单按钮”。
  • 选择“安装”并安装应用程序。

如果应用程序未显示,请选择“整个SD”以查看所有SD卡应用程序。

+0

好的。我会在早上尝试。我们尝试以两种不同的方式安装它: 1.将其卡在SD卡上。他们说,当他们将SD卡插入他们的手机中,并转到.apk文件时,它立即尝试安装,并给他们那个错误。 2.我通过电子邮件将.apk文件发送到他们的Gmail帐户,他们通过手机访问Gmail并试图从那里安装。它给出了同样的错误。 我会让他们知道接下来尝试您的建议。谢谢您的帮助。 – ConfusedDeveloper 2010-05-12 06:43:09

+0

它工作。非常感谢。:D – ConfusedDeveloper 2010-05-13 00:19:33

0

您不应该使用自定义应用来安装某些东西。简单地尝试从SD卡上打开它(好的,所以你需要一个文件管理器:p)或通过电子邮件直接访问文件真的应该工作。有两件事要检查:

  1. 当我在评论中,你使用的包名是什么?
  2. 是否有任何这些手机的设置允许安装来自市场以外的应用程序?它通过设置 - >应用程序完成。如果没有,那么安装可能不会被允许,因为您可能没有将应用程序作为“完成的应用程序”签名 - 默认情况下,它们使用调试密钥进行签名。

编辑:

我只是谷歌搜索周围,和原来其他几个人有过这样的问题。然而,在每种情况下,它都以不同的方式解决了......在一种情况下,使用第三方文件浏览应用程序解决了这个问题。在another case中,开发人员在签名和导出后重命名.apk文件,显然这足以让他打破它。但这对我来说没有任何意义 - 我只是在手机上用三种不同版本对其进行了测试:使用调试密钥签名,使用“正确”键签名并用正确的密钥进行签名,然后重命名。在每种情况下,该应用程序都被复制到我的SD卡上,并打开Astro(一个文件浏览程序),然后启动内置的安装程序应用程序。所有三个人都工作,所以我不知道其他人如何重命名他的.apk。

所以......我不知道。对不起:/也许尝试从一个调试密钥签名的apk安装它,或者从头开始另一个项目,看看你的清单文件是否损坏。

为了回答您的评论:

  1. 包名称是com.example.helloandroidtwo样式名称。 APK名称只是压缩文件的名称(APK只是zip文件!),不应有所作为。你的包名看起来不错,嗯。
  2. 事实证明,你确实已经正确地签署了你的申请。生成这样的密钥库会使它使用适当的密钥而不是调试密钥。我不认为这会有所作为,但值得检查。我没有打扰用适当的密钥签署我的应用程序,直到我真正将它们投放市场。
  3. 考虑到API级别7是好的,因为所有的测试手机也都在运行级别7(v2.1)。通常情况下,您不希望将最小版本设置为7,因为这排除了大多数用户,但这不应该成为您的问题。但要确定,编辑项目属性以将目标设置为3级。除非在开始时下载了所有API级别,否则可能不会拥有它。使用Eclipse中的AVD Manager下载它。
+0

软件包名称是“HelloAndroid2.apk”我相信这是你正在寻找的形式,是正确的?除非你的意思是在源代码中,在这种情况下,我把它命名为:“package com.example.helloandroidtwo;” 他们三个都选中“未知来源”框。 至于调试密钥,这里是我在eclipse中做的: 导出 - >导出Android应用程序 - >选择的项目HelloAndroid2->创建新的密钥库。然后我创建了一个新密码,然后点击下一个,创建一个新的别名,然后完成。这是否构成调试密钥?如果是这样,我将如何制作释放键? – ConfusedDeveloper 2010-05-12 15:14:55

+0

另外,仅供参考,我使用的是Android 2.1 API。这是正确的使用,对吗?因为还有Google + Android 2.1 API。该教程说使用Android 2.1,所以这就是我所做的。 – ConfusedDeveloper 2010-05-12 16:15:25

+0

@ConfusedDeveloper:我编辑了我的答案以提供更多信息。 – 2010-05-12 17:01:53

0

最简单的解决方案是使用浏览器通过http://mail.google.com访问您的Gmail账户并使用链接下载附件。之后,您可以运行安装,只要您启用了非市场应用程序的安装即可。

1

我最近遇到了同样的问题。我通过从Andriod SDK(4.0.3)将应用程序移植到我将应用程序部署到(2.3.3)的手机支持的应用程序来解决此问题。

3

别担心。这是一个小问题。我也花了一周时间,最后我得到了解决方案。只需转到manifest.xml文件并执行下游的更改。

//uses-sdk android:minSdkVersion="14" 

只是将其更改为

//uses-sdk android:minSdkVersion="3" 

或任何下级SDK版本,我们的设备支持。尝试一下。并回答,无论你满意与否。

2

转到您的manifest.xml,只是删除

使用-SDK安卓的minSdkVersion = “14”