2010-01-29 293 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