2012-04-02 97 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

相關問題