2012-04-02 98 views
2

大家好。这是我在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> 
+0

“(我通过Dropbox发送.apk”这到底意味着什么?我通常会让Eclipse系统将应用程序发送到手机,您确定这是有效的,您是否也在失败期间获得任何logcat输出安装过程? – StevieB 2012-04-02 11:41:47

+0

我将应用程序.apk文件放在Dropbox上,然后通过我的Android设备下载它,它只是一个传输安装文件的简单快捷方式。 – Daimes 2012-04-02 11:54:00

+0

另一个想法是,您有意图过滤usb作为应用程序的孩子附加,我会认为应该在activity元素中 – StevieB 2012-04-02 11:55:40

回答

0

变化而变化android:debuggable="true"android:debuggable="false",看看它是否有什么差别。

+0

我不希望有什么区别,因为这只是在调试时使用,而且在我开始遇到此问题后添加了它。我添加了'code'android:debuggable =“true”'code',这样我就可以使用DDMS来尝试Logcat来确定问题所在。无论如何尝试过,但它没有任何区别。仍然得到相同的错误。 – Daimes 2012-04-02 11:02:56

+0

Logcat的细节在这里会有所帮助。 – Asdfg 2012-04-02 11:53:03

+0

当然,我会在这里张贴;然而,明天当我的包含com.android.future.usb库的手机到达时,我必须这样做。我没有想到这个缺失的库是问题的原因,所以我问这个问题,看看我是否可以回到舞台上,当我得到一个安装失败的消息,而不是'应用程序包安装程序意外停止' 信息。对不起,但谢谢你的回应。一旦我在新设备上测试过,我会明天回来。 – Daimes 2012-04-02 12:05:47

1

我看到这个用的logcat以下异常:

E/AndroidRuntime(28817): FATAL EXCEPTION: main 
E/AndroidRuntime(28817): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.example.app/.MyActivity } from ProcessRecord{487978e8 28817:com.android.packageinstaller/10063} (pid=28817, uid=10063) requires android.permission.ACCESS_FINE_LOCATION 

我想在清单中,但在我的情况下,问题是由于一些<uses-permission...>标签有一个android:permission="..."属性在我的清单application标签这似乎导致包管理者得到异常和酒吧。删除这让我再次去。

4

android清单,图标图像很大,所以请减小图像图标大小并运行应用程序它工作正常。

+0

这个工作适合我 – 2016-05-06 09:48:59

相关问题