Внезапная интеграция с Android-приложением дает ошибку "Не удалось найти класс com.flurry.sdk.i", на который ссылается метод com.flurry.sdk.hu.a "

Это то, что я пробовал до сих пор:

public class ScoreUpApp extends Application {
private static ScoreUpApp scoreUpDataCache;
public static final String TAG = "MyApp";

@Override
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();

    // configure Flurry
    FlurryAgent.setLogEnabled(true);
    // init Flurry
    FlurryAgent.init(this, "V88JVYGFF7QX5D9RYZG2");

}
}

Вот что я получил в Logcat:

03-17 14:06:41.924: E/dalvikvm(30175): Could not find class 'com.flurry.sdk.i', referenced from method com.flurry.sdk.hu.a

03-17 14:31:36.694: W/dalvikvm(31798): VFY: unable to resolve const-class 2065 (Lcom/flurry/sdk/i;) in Lcom/flurry/sdk/hu;

Спасибо.

Ответ 1

Это предупреждение/сообщение об ошибке произойдет, если вы используете только FlurryAnalytics-X.X.X.jar без FlurryAds-X.X.X.jar. Если вас не интересуют объявления, вы можете просто проигнорировать ошибку, поскольку это всего лишь внутренняя ошибка SDK и не повлияет на ваше приложение.

Однако, если вы уже включили библиотеку объявлений в качестве зависимости, и вы все еще видите эту ошибку, это связано с тем, что Proguard убирает необходимые классы. Убедитесь, что у вашей конфигурации Proguard есть как минимум следующее:

-keep class com.flurry.** { *; }
-dontwarn com.flurry.**
-keepattributes *Annotation*,EnclosingMethod,Signature
-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

# Google Play Services library
-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *

-keepclassmembernames class * {
    @com.google.android.gms.common.annotation.KeepName *;
}

-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

#If you are using the Google Mobile Ads SDK, add the following:
# Preserve GMS ads classes
-keep class com.google.android.gms.ads.** { *;
}
-dontwarn com.google.android.gms.ads.**


#If you are using the InMobi SDK, add the following:
# Preserve InMobi Ads classes
-keep class com.inmobi.** { *;
}
-dontwarn com.inmobi.**
#If you are using the Millennial Media SDK, add the following:
# Preserve Millennial Ads classes
-keep class com.millennialmedia.** { *;
}
-dontwarn com.millennialmedia.**