2010-01-29 132 views
3

我已經能夠從我的代碼創建* .apk文件,將文件 放入IIS中,並將其下載到多個Android手機上。在安裝 後,應用程序將按預期正常工作。APK部署問題

然而,一個電話重新啓動後,應用程序的名稱更改爲 在菜單中活動的全組隊參加Java類名(所以 「MyActivity」變成「com.mycompany.MyActivity」),而當我嘗試去 菜單>設置,我得到一個錯誤,導致android強制關閉我的應用程序 。

縱觀DDMS,我發現我得到一個錯誤,表明它可能 找不到我的首選項活動,儘管事實上在初始的 安裝,它可以正常工作。

我在Windows XP上使用Eclipse,並且有幾個Android設備在 我的處置測試。

任何想法是怎麼回事?

的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.company.app" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<application android:icon="@drawable/logo" android:label="@string/app_name"> <!--android:debuggable="true">--> 
    <activity android:name="com.company.app.ActivityMain" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.company.app.Preferences" 
       android:label="@string/app_settings"> 
       <intent-filter> 
       <category android:name="android.intent.category.PREFERENCE"></category> 
       <action android:name="android.intent.action.MAIN"></action> 
       </intent-filter> 
    </activity> 
    <service android:name="com.company.app.Service"></service> 
</application> 
<uses-sdk android:minSdkVersion="3" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
</manifest> 
+0

你能編輯你的問題併發布你的清單嗎?此外,這是發生在各種手機上,還是你只嘗試一個(如果是的話,哪個手機)?此外,在您的應用程序中是「菜單>設置」的東西嗎? – CommonsWare 2010-01-29 11:34:24

+0

什麼是應用程序信息(設置 - >應用程序 - >管理應用程序 - >您的應用程序)說重新啓動之前和之後? – 2010-01-29 12:17:36

+0

我編輯了我的問題以包含我的清單。我一直主要與HTC Hero合作,但已經在幾款設備(HTC Droid Eris或HTC Tattoo)上嘗試過。菜單>設置是我的菜單選項來打開我的首選項活動。在重新啓動之前,設置>應用程序>管理應用程序將我的應用程序列爲字符串/ app_name的值。重新啓動後,它讀取com.company.app。 – Brandon 2010-01-29 15:00:17

回答

2

所以,我終於得到了這個工作。我認爲HTC Hero上的軟件包安裝程序(也許是HTC Droid Eris)存在一些問題。

我從手機中卸載了我的應用程序,更改了我的主要活動的名稱,並將其重新部署到Hero上。我開始立即得到「力量關閉」。我將設備連接到DDMS並查看錯誤。它仍在尋找我的舊活動名稱。我工廠重置設備並重新安裝相同的軟件包(使用更新後的名稱),並且所有內容都按預期工作。

所以看起來軟件包安裝程序正在緩存舊清單的某個部分或某些內容,並不確定那裏到底發生了什麼。如果我有時間,我可以再玩一次。

我不知道是否有人可以驗證這個問題,也許這是HTC應該採取的措施?

0

嘗試使用這個清單

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.company.app" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<application android:icon="@drawable/logo" android:label="@string/app_name"> <!--android:debuggable="true">--> 
    <activity android:name=".ActivityMain" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".Preferences" 
       android:label="@string/app_settings"> 
       <intent-filter> 
       <category android:name="android.intent.category.PREFERENCE"></category> 
       <action android:name="android.intent.action.MAIN"></action> 
       </intent-filter> 
    </activity> 
    <service android:name=".Service"></service> 
</application> 
<uses-sdk android:minSdkVersion="3" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
</manifest> 
+0

這導致了我之前看到的相同行爲。我不認爲用不同的名稱來區分這個問題。在做了更多的遊戲後(通過創建一個單獨的測試項目),似乎一切都很好,直到我添加另一個活動。也許我如何宣佈這些活動是不正確的? – Brandon 2010-01-29 18:33:07