大家好。这是我在StackOverflow上的第一篇文章,虽然我一直在使用这个网站几年。通常我可以通过参考其他人提出的问题找到我可能有任何疑问的答案;然而,在这种情况下,我完全难住,尽管已经做了相当多的功课已经应用程序包安装程序在安装时意外停止
我目前正在开发一个Android应用程序的过程中需要与一个硬件 - 更具体地说是一个PIC32板 - 显示电路板实时返回的数据。
目前我只是简单地使用Eclipse和Android仿真器来设计接口和编程应用程序的后端。而且,现在我已经进入了一个阶段,我想测试应用程序在物理Android设备上的运行。然而,每当我尝试安装应用程序,直接从手机(我通过Dropbox发送.apk),我总是得到错误'应用程序包安装程序(进程com.android.packageinstaller)意外停止。请再试一次'。现在,我已经完成了我的功课,似乎已经确定错误可能出在应用程序的Android Manifest文件中。但是,我不明白这个问题可能在哪里。我看到通过删除特定标签或复制标签解决了其他问题;然而,即使这样我的应用程序也不想安装在我的设备上,尽管它在每次运行模拟器时都会安装并运行得非常好。
我正在开发的应用程序基于硬件制造商提供的Demo代码。它已被适当修改。而且,当我适当修改我的应用程序的清单文件并使用演示应用程序进行测试时,一切似乎都能在物理设备上正常工作。所以,有人告诉我,Manifest文件实际上可能不是问题。我的应用程序和演示应用程序之间的主要区别在于,我已将代码分成适当的包,其中一个包含应用程序代码(活动),另一个包含用于与PIC32板通信的代码。我还添加了一个活动 - 演示代码只有一个,但目前有两个。最后的区别是,我定义了一个全局对象,用于与董事会进行通信,可供所有应用程序的活动使用。但是,我不认为这会成为这个问题的原因。
所以再次,应用程序似乎在模拟器上工作正常,但它根本不想安装在物理Android设备上 - 每次尝试安装时,都会显示一条警告对话框,显示此消息。
我非常感谢任何人可以提供的任何帮助和建议,并提前致谢。
而且,这里是我开发的应用程序的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tribosonics.android.TribosonicsApp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" >
</uses-sdk>
<uses-sdk android:targetSdkVersion="10" >
</uses-sdk>
<!--
<permissions>
<feature name="android.hardware.usb.accessory" />
<library
name="com.android.future.usb.accessory"
file="/system/framework/com.android.future.usb.accessory.jar" />
</permissions>
-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name=".GlobalAccessoryManager"
android:debuggable="true"
android:icon="@drawable/tribosonics_icon"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="@xml/accessory_filter" />
<activity
android:name=".TribosonicsApp"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SetScanPreferences"
android:screenOrientation="portrait" >
</activity>
<uses-library android:name="com.android.future.usb.accessory" />
</application>
</manifest>
“(我通过Dropbox发送.apk”这到底意味着什么?我通常会让Eclipse系统将应用程序发送到手机,您确定这是有效的,您是否也在失败期间获得任何logcat输出安装过程? – StevieB 2012-04-02 11:41:47
我将应用程序.apk文件放在Dropbox上,然后通过我的Android设备下载它,它只是一个传输安装文件的简单快捷方式。 – Daimes 2012-04-02 11:54:00
另一个想法是,您有意图过滤usb作为应用程序的孩子附加,我会认为应该在activity元素中 – StevieB 2012-04-02 11:55:40