私のアプリは Android 1.5 (API3) から 4.1.2 (API16) をサポートしています。GoogleAnalyticsV2 を追加して再テストすると、エミュレーターで API3 でエラーが発生します。
11-08 20:00:58.813: E/dalvikvm(732): Could not find method
android.content.pm.PackageManager.getInstallerPackageName, referenced
from method
com.google.analytics.tracking.android.GAThread.fillAppParameters 11-08
20:00:58.887: W/dalvikvm(732): VFY: unable to resolve virtual method
226: Landroid/content/pm/PackageManager;.getInstallerPackageName
(Ljava/lang/String;)Ljava/lang/String; 11-08 20:00:58.925:
W/dalvikvm(732): VFY: rejecting opcode 0x6e at 0x000c 11-08
20:00:58.934: W/dalvikvm(732): VFY: rejected
Lcom/google/analytics/tracking/android/GAThread;.fillAppParameters
(Ljava/util/Map;)V 11-08 20:00:58.934: W/dalvikvm(732): Verifier
rejected class Lcom/google/analytics/tracking/android/GAThread; 11-08
20:00:58.964: D/AndroidRuntime(732): Shutting down VM 11-08
20:00:58.964: W/dalvikvm(732): threadid=3: thread exiting with
uncaught exception (group=0x4000fe70) 11-08 20:00:58.985:
E/AndroidRuntime(732): Uncaught handler: thread main exiting due to
uncaught exception 11-08 20:00:59.084: E/AndroidRuntime(732):
java.lang.VerifyError: com.google.analytics.tracking.android.GAThread
11-08 20:00:59.084: E/AndroidRuntime(732): at
com.google.analytics.tracking.android.GoogleAnalytics.<init>(GoogleAnalytics.java:55)
11-08 20:00:59.084: E/AndroidRuntime(732): at
com.google.analytics.tracking.android.GoogleAnalytics.getInstance(GoogleAnalytics.java:91)
11-08 20:00:59.084: E/AndroidRuntime(732): at
com.google.analytics.tracking.android.EasyTracker.setContext(EasyTracker.java:309)
11-08 20:00:59.084: E/AndroidRuntime(732): at
com.tonycode.primenumbers.ListNumsActivity.onCreate(ListNumsActivity.java:32)
11-08 20:00:59.084: E/AndroidRuntime(732): at
...
実際のデバイスでテストしている間、Android 2.3.3 と Android 4.0.3 は OK です。
上記のログで、メソッド android.content.pm.PackageManager.getInstallerPackageName が API3 に存在せず、[API5][http://developer.android.com にのみ存在するため、Analytics を開始できないことがわかりました。 /reference/android/content/pm/PackageManager.html#getInstallerPackageName(java.lang.String] 1
(1) API3 と API4 で GoogleAnalyticsV2 を有効にする方法はありますか? (2) そうでない場合、アプリが API3/4 にインストールされている場合、コードで GoogleAnalyticsV2 を無効にするにはどうすればよいですか?