APK部署问题

时间:2010-01-29 02:31:38

标签: android android-manifest

我已经能够从我的代码创建一个* .apk文件,放置文件 在IIS中,并将其下载到许多Android手机上。经 安装,应用程序完全按预期工作。

但是,重新启动手机后,应用程序名称将更改为 菜单中活动的完全限定的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> 

2 个答案:

答案 0 :(得分:2)

所以我终于开始工作了。我认为HTC Hero(也许是HTC Droid Eris)上的软件包安装程序存在一些问题。

我从手机上卸载了我的应用程序,更改了我的主要活动的名称,并将其重新部署到Hero上。我开始立即得到一个“强制关闭”。我将设备连接到DDMS并查看错误。它仍在寻找我的旧活动名称。我出厂重置设备并重新安装相同的软件包(使用更新的名称),一切都按预期工作。

因此,似乎包安装程序正在缓存旧清单的某些部分或某些内容,而不是确定那里到底发生了什么。如果我有空的话,我可以再玩一些。

我不知道是否有其他人可以验证这个问题,也许这是HTC应该采取的措施?

答案 1 :(得分: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>