0

私のアプリは 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 を無効にするにはどうすればよいですか?

4

1 に答える 1

1

以下をチェックすることで、API 5+ に対してのみ Google アナリティクスを有効にすることができますBuild.VERSION.SDK_INT

if (Build.VERSION.SDK_INT >= 5) {
    // Start Google Analytics...
}

編集

API 4 より前SDK_INTは、存在しませんでした。ただし、少し不便なRELEASE(文字列) を使用することもできますが、これはすべての Android ビルドで機能します。値を簡単に解析するとRELEASE、問題が解決するはずです。

if (android.os.Build.VERSION.RELEASE.startsWith("1.5") == false) {
    // Start Google Analytics...
}

3 (Android 1.5) より前の API レベルをサポートする場合は、それらも除外する必要があります。

于 2012-11-08T20:51:03.337 に答える