Hoppa till innehåll
8 januari 11

Google fixar en bugg

av admin

Som jag rapporterade, skulle Google Analytics för Android ibland kasta en SQLiteException. Naturligtvis stora G var att få on-line flack över detta och har nu lagt ut en ny version av sin JAR-filen. Version 1.1 gör anspråk på att åtgärda problemet. Du kan kolla upp det på code.google.com/mobile/analytics/docs/android längst ner på sidan.

1 Jan 11

Kan Google programmerare koda Android?

av admin

Man skulle kunna tro om någon skulle veta hur man skriver Android kod skulle det vara kodare på Google. Men om du använder Google Analytics biblioteket tillgängligt för Android, kanske du stöter på problem. Google Analytics är bra att spåra användningen av din Android-applikation, men bör Google Analytics någonsin orsaka din app att krascha?

Google Analytics orsakade en av mina program att krascha och stackspårningen såg ut:

android.database.sqlite.SQLiteException: inte öppna databasfilen
vid android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2787)
vid android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2803)
på android.app.ActivityThread.access $ 2300 (ActivityThread.java:135)
vid android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2136)
vid android.os.Handler.dispatchMessage (Handler.java:99)
vid android.os.Looper.loop (Looper.java:144)
vid android.app.ActivityThread.main (ActivityThread.java:4937)
på java.lang.reflect.Method.invokeNative (Native Method)
vid java.lang.reflect.Method.invoke (Method.java:521)
vid com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868)
vid com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626)
på dalvik.system.NativeStart.main (Native Method)
Orsakas av: android.database.sqlite.SQLiteException: inte öppna databasfilen
på android.database.sqlite.SQLiteDatabase.dbopen (Native Method)
vid android.database.sqlite.SQLiteDatabase. <init> (SQLiteDatabase.java:1899)
vid android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:881)
vid android.database.sqlite.SQLiteOpenHelper.getReadableDatabase (SQLiteOpenHelper.java:168)
på com.google.android.apps.analytics.PersistentEventStore.getNumStoredEvents (Okänd källa)
på com.google.android.apps.analytics.PersistentEventStore.startNewVisit (Okänd källa)
på com.google.android.apps.analytics.GoogleAnalyticsTracker.start (Okänd källa)
på com.google.android.apps.analytics.GoogleAnalyticsTracker.start (Okänd källa)

Så Google Analytics försökte använda SQLite för att öppna databasen, men misslyckades med att fånga en SQLiteException. Korrigeringen var att linda öppna Google Analytics i en try-catch-block och fånga detta undantag. Här är de relevanta kodfragment att fixa kraschen genom att fånga undantaget Google Analytics inte:


import com.google.android.apps.analytics.GoogleAnalyticsTracker;
GoogleAnalyticsTracker tracker = null;
try {
tracker = GoogleAnalyticsTracker.getInstance();
tracker.start("UA-123456-78", 20, this);
}
catch (android.database.sqlite.SQLiteException sqle)
{
Log.d(SUBSYSTEM_TAG, "Google Analytics SQLite exception: "+sqle);
tracker = null;
}
catch (Exception e)
{
Log.d(SUBSYSTEM_TAG, "Google Analytics exception: "+e);
tracker = null;
}
if (tracker != null)
tracker.trackEvent("Android", action, label, val);

Den OnDestroy () metoden kod ser ut:

if (tracker != null) {
tracker.stop();
tracker = null;
}

Kom ihåg att du måste fånga dessa undantag om du använder Google Analytics i din Android-app, annars en av dina användare kan titta på din app krasch. Hur tror du att de kommer att betygsätta din app då?

8 jun 10

Android App Store brister

av admin

Google marknaden har varit det enda spelet runt för Android-appar, även om det kan förändras. Några av marknadens tillkortakommanden inkluderar:

  • Inga skärmdumpar av din ansökan.
  • 325 tecken på beskrivningar.
  • Google Checkout är det enda betalningsalternativ.
  • Apps är svårt för användarna att hitta.
  • Inget sätt att ladda ner ett program via webben via en webblänk.

Vissa förbättringar kan vara på väg, men det är gotchas för utvecklare idag.