3

コードから*.apkファイルを作成し、そのファイルをIISに配置して、多数のAndroidフォンにダウンロードすることができました。インストールすると、アプリケーションは期待どおりに動作します。

ただし、電話を再起動した後、アプリケーション名はメニュー内のアクティビティの完全なJavaクラス名に変更され(したがって、「MyActivity」は「com.mycompany.MyActivity」になります)、メニューに移動しようとすると>設定、Androidがアプリケーションを強制的に閉じる原因となるエラーが発生します。

DDMSを調べると、初期インストール時の事実にもかかわらず、設定アクティビティが見つからないことを示すエラーが表示されますが、正しく機能しています。

私はWindowsXPで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> 
4

2 に答える 2

2

だから私はついにこれを機能させることができました。HTC Hero(およびおそらくHTC Droid Eris)のパッケージインストーラーにはいくつかの問題があると思います。

アプリケーションを電話からアンインストールし、メインアクティビティの名前を変更して、ヒーローに再デプロイしました。私はすぐに「フォースクローズ」を取得し始めました。デバイスをDDMSに接続し、エラーを確認しました。それはまだ私の古い活動名を探していました。デバイスを工場出荷時にリセットし、同じパッケージ(更新された名前)を再インストールしましたが、すべてが期待どおりに機能します。

したがって、パッケージインストーラーは、古いマニフェストなどの一部をキャッシュしているように見えますが、そこで何が起こっているのかは実際にはわかりません。時間があればもう少し遊んでもいいかもしれません。

他の誰かがこの問題を確認できるかどうかはわかりませんが、HTCで取り上げるべきものでしょうか?

于 2010-02-01T00:43:37.660 に答える
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>
于 2010-01-29T17:22:02.243 に答える