最近、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 available
。WRITE_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
これは、更新によって新しいプロセスが発生し、古いプロセスのデータなどにアクセスできないかのようです。
助けていただければ幸いです。