【问题标题】:app not running on HTC desire应用程序未在 HTC 愿望上运行
【发布时间】:2012-09-04 07:51:19
【问题描述】:

我制作了一个在三星 Galaxy S1、Galaxy S2 和模拟器上运行良好的安卓应用。我将它的 apk 发送给拥有 HTC 渴望设备的人,当他尝试安装该应用程序时,他说他遇到了错误:

There was an error parsing the package.

由于我自己没有 HTC,所以我尝试设置一个模拟器,其规格尽可能接近 HTC 渴望设备的规格,我从这里得到:The correct Eclipse/Android device configuration for HTC Desire
该应用程序使用这些设置在我的模拟器上运行良好,但没有安装在实际设备上。有什么想法会导致这种情况吗?我如何找到问题?

如果相关的话,这是 Manifest 的开头:

<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="memo.ori.friend"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<application android:icon="@drawable/icon" android:label="@string/app_name"
android:debuggable="true">

HTC希望安卓版本是2.2,这是我创建这个项目时选择的。检查所有选中的手机以允许安装来自未知来源的应用程序。这个应用程序中有大约 5 个可绘制对象,我已将它们放入 res/drawable-hdpi 中。我想也许 HTC 正在 res/drawable-mdpi 上寻找它们,所以我也将它们复制到那里,但得到了相同的结果。

感谢任何帮助,我会为您提供您认为相关的任何其他信息,我不确定在哪里寻找:/

【问题讨论】:

  • 你的应用程序的android版本是什么?你的galaxy s1,s2的android版本是什么?htc的愿望是什么android版本?
  • 您的 APK 签名了吗?如果不检查这个link,它应该有助于在真实设备上安装和运行它。
  • 可能你正在尝试将应用安装在Android版本低于8的设备上,你已经写了能够运行应用的最小sdk版本是8。但是你发布的错误消息,似乎不是那样...您是否正确构建了软件包?您选择了正确的 .apk 吗?
  • 我想是的。这是来自 workspace/app_name/bin/ 的同一个 apk,它在 S1 和 S2 上都有效。如果HTC的android版本是2.2,是不是保证能跑8级?
  • @AamirKhan 应用程序版本为 2.2。欲望也是如此。

标签: android


【解决方案1】:

我很确定问题在于 HTC Desire 上的 Android 版本低于 API 级别 8。Desire 最初附带 Android 2.1,据我所知,它是 API 级别 7。

几天前,我在尝试在三星 Galaxy S1 上安装我的一个应用程序时发现了同样的错误。我的应用程序是为 API 级别 10 设计的,我发现三星 Galaxy S1 从未在 Andoid 2.2 上更新和运行。

我猜你的问题也差不多,Desire上的Android版本太低了。

更新:

随着小研究导致: 正如我在上面所写的,错误可能是由于手机上的 API 级别低(根据安装的 Android 版本,您可以在此处找到带有 Android 版本的表 - API 级别)。 但错误也可能由以下原因引起: 在自动创建 *.apk 文件后重命名它,在某些设备上,当您从 SD 卡安装它时似乎会发生这种情况。 在尝试直接从邮件附件安装时,还会报告一些问题 - 导致此错误的原因。

因此,如果您遇到此错误,请确保: 1.确保手机上的Android版本足够高 2.创建后不要重命名apk-File 3.不要尝试直接从邮件附件安装 4.不要从SD卡安装,用实习手机内存试试

如果这一切都没有帮助,那么实际上是时候查看 Manifest 了,因为它是一个解析错误,但这不能成为您的解决方案,因为它在其他一些设备上运行。

【讨论】:

  • 谢谢!有没有办法告诉 HTC 上的 api 级别是什么?我在“设置”->“关于”上看不到此信息,只有 2.2 的 Android 版本。我想肯定的是,情况就是这样。如果是,我们能做什么?
  • 我会问他是否尝试从 SD 卡安装。我通过电子邮件向他发送了 .apk 文件,所以我不确定。重命名apk是什么意思?我认为它没有被重命名,因为它是在 /bin 中创建的
  • 好的,非常感谢!我会查一下并告诉你是否是这种情况。感谢您的帮助。
  • @user1555863 我更新了答案,如果对你有帮助请采纳。
  • 是的,您可能无法获得该问题的解决方案。我想到的最后一件事是,您应该找其他人使用 HTC Desire 并尝试在此设备上安装,这样您就可以确定它在 Desire 上不起作用,并且不会发生一些奇怪的事情你尝试过的这个特定的愿望......
【解决方案2】:

您的 Activity 在清单中的哪个位置运行? Manifest 应该有一个 Start Activity 来启动它 Like

<uses-sdk android:targetSdkVersion="7"/>
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

【讨论】:

  • 当然,这包含在我的应用程序清单的其余部分中。 如果没有这个我假设应用程序不会在模拟器和 s1 和 s2 上运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多