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 den stora G var att få on-line flack över det och har nu lagt ut en ny version av deras JAR-fil. Version 1.1 anspråk för 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ändning av din Android-applikation, men bör Google Analytics någonsin få din app att krascha?

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

android.database.sqlite.SQLiteException: kan 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)
på android.os.Handler.dispatchMessage (Handler.java: 99)
på android.os.Looper.loop (Looper.java: 144)
vid android.app.ActivityThread.main (ActivityThread.java: 4937)
på java.lang.reflect.Method.invokeNative (Native Method)
på 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 att ö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)
på android.database.sqlite.SQLiteOpenHelper.getReadableDatabase (SQLiteOpenHelper.java: 168)
vid 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. Den rätta 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 misslyckades med att:


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 kraschar. 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 Apps, även om det kan förändras. Några av marknadens brister är:

  • Inga skärmdumpar av din ansökan.
  • 325 tecken på beskrivningar.
  • Google Checkout är det enda betalningsalternativet.
  • 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 dessa är gotchas för utvecklare idag.