2010-03-20 20 views
2

J'ai récemment mis à jour mon application Android pour prendre en charge plusieurs résolutions. Auparavant, mon dossier Android.manifest avait une ligne:Android: manifestSdkVersion changement conduit à: icône non visible, le widget ne fonctionne plus, et ne peut plus accéder aux données

Pour soutenir plusieurs dispositifs de densité et de résolution, je l'ai changé cela:

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

J'ai ensuite ajouté deux nouveaux répertoires, comme drawable -hdpi-v4 et drawable-long-hdpi-v4 qui inclut les versions haute résolution des graphiques. C'est à peu près ça.

Depuis la publication de ce jour, il y a eu un nombre décent d'utilisateurs se plaignant de divers problèmes:

  • l'icône de l'application ne semble pas (je n'ai pas créé une version haute résolution de l'icône)
  • le widget écran d'accueil ne fonctionne plus, même s'il est supprimé et ajouté (ce code n'a pas changé avec la mise à jour). J'ai eu me envoyer un utilisateur leur journal d'erreurs, ce qui montre:

    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

Il y a une section discutable dans mon code widget existant qui peut être pertinente:

@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); 
    } 
} 

Et peut-être le plus gênant: the sqlite database is no longer accessible/writeable for some users so their data is no longer available. J'ai ajouté la permission WRITE_EXTERNAL_STORAGE au manifeste. Cela arrive seulement à certains utilisateurs et il a tendance à être des utilisateurs de HTC Eris. Dans ce journal des erreurs que je vois des choses telles que:

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 

Il est comme si la mise à jour a provoqué un nouveau processus et il ne peut pas accéder aux données de l'ancien processus, ou quelque chose.

Toute aide appréciée!

Répondre

0

cette combinaison gaffé it up:

J'ai ensuite ajouté deux nouveaux répertoires, comme drawable-hdpi-v4 et drawable-long hdpi-v4 qui comprend les versions haute résolution des graphiques.

supprimer les répertoires drawable- v4 et mis graphiques dans le drawable- folders..that corrigera vos graphiques

autre errors..have vous avez coché encore les forums Android devloper Motorola?