2

最近、Androidアプリをアップグレードして、複数の解像度をサポートしました。以前、私のAndroid.manifestファイルには次の行がありました。

複数の密度と解像度のデバイスをサポートするために、これを次のように変更しました。

<supports-screens
 android:smallScreens="false"
 android:normalScreens="true"
 android:largeScreens="true"
 android:anyDensity="true"
/>
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" />

次に、drawable-hdpi-v4やdrawable-long-hdpi-v4など、高解像度バージョンのグラフィックスを含むいくつかの新しいディレクトリを追加しました。それについてです。

このアップデートをリリースして以来、さまざまな問題について不満を言うユーザーがかなりの数います。

  • アプリのアイコンが表示されない(高​​解像度バージョンのアイコンを作成していません)
  • ホーム画面ウィジェットは、削除して再度追加しても機能しなくなりました(このコードは更新によって変更されませんでした)。ユーザーにエラーログを送ってもらいました。エラーログには次の内容が表示されます。

    03-19 20:59:41.617 W/ActivityManager( 1854): Unable to launch app com.alt12.babybump/10078 for broadcast Intent { action=android.appwidget.action.APPWIDGET_UPDATE flags=0x4 comp={com.alt12.babybump/com.alt12.babybump.WidgetGirl} (has extras) }: process is bad

私の既存のウィジェットコードには、関連する可能性のある疑わしいセクションが1つあります。

@Override
 public void onReceive(Context context, Intent intent) {

  // v1.5 fix that doesn't call onDelete Action
  final String action = intent.getAction();
  if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) {
   final int appWidgetId = intent.getExtras().getInt(
     AppWidgetManager.EXTRA_APPWIDGET_ID,
     AppWidgetManager.INVALID_APPWIDGET_ID);
   if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
    this.onDeleted(context, new int[] { appWidgetId });
   }
  } else {
   super.onReceive(context, intent);
  }
 }

そしておそらく最も厄介なのは:the sqlite database is no longer accessible/writeable for some users so their data is no longer availableWRITE_EXTERNAL_STORAGEマニフェストに権限を追加しました。これは特定のユーザーにのみ発生し、HTCErisユーザーになる傾向があります。そのエラーログには、次のようなものがあります。

03-19 16:00:56.173 E/FlurryAgent( 4791): java.io.FileNotFoundException: /data/data/com.alt12.babybump/files/.flurryagent.-2333f5cb
03-19 16:00:56.173 E/FlurryAgent( 4791): at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:231)

03-19 16:01:09.393 E/Database( 4791): sqlite3_open_v2("/data/data/com.alt12.babybump/databases/uitematmamad.db", &handle, 6, NULL) failed
03-19 16:01:09.393 W/System.err( 4791): android.database.sqlite.SQLiteException: unable to open database file

これは、更新によって新しいプロセスが発生し、古いプロセスのデータなどにアクセスできないかのようです。

助けていただければ幸いです。

4

1 に答える 1

0

この組み合わせはそれを間違えました:

次に、drawable-hdpi-v4やdrawable-long-hdpi-v4など、高解像度バージョンのグラフィックスを含むいくつかの新しいディレクトリを追加しました。

drawable- -v4ディレクトリを削除し、グラフィックをdrawable-フォルダに配置します。これによりグラフィックが修正されます。

その他のエラーについては、Motorola android devloperフォーラムをもうチェックしましたか?

于 2010-04-10T12:23:50.703 に答える