Ошибка при использовании proguard с Android Facebook SDK 3.0

Предупреждение: Я снял многостарый текст " чтобы вопрос оставался более чистым. Просто проверьте историю, если это необходимо.

м используюproguard чтобы уменьшить и запутать приложение, которое используетFacebook SDK 3.0 (Я'м, используятег sdk-version-3.0.2.b). Я'Я не использую файл JAR. Вместо этого я импортировал SDK в свое рабочее пространство, какдокументация.

В определенный момент выполнения приложение загружаетPlacePickerFragment позволить пользователю выбрать место, где он находится. Чтобы закодировать это, я точно следуюПотрясающий учебник.Когда я генерирую apk отладки без использованияproguard все работает как положено. Но когда я генерирую подписанный APK с помощьюproguard, он падает, когда PlacePickerFragment загружает близлежащие места со следующей трассировкой:

E/AndroidRuntime(27472): FATAL EXCEPTION: main
E/AndroidRuntime(27472): com.facebook.FacebookGraphObjectException: can't infer generic type of: interface com.facebook.model.GraphObjectList
E/AndroidRuntime(27472):    at com.facebook.model.GraphObject$Factory.coerceValueToExpectedType(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.model.GraphObject$Factory$GraphObjectProxy.proxyGraphObjectGettersAndSetters(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.model.GraphObject$Factory$GraphObjectProxy.invoke(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.widget.$Proxy2.getData(Native Method)
E/AndroidRuntime(27472):    at com.facebook.widget.GraphObjectPagingLoader.addResults(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.widget.GraphObjectPagingLoader.requestCompleted(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.widget.GraphObjectPagingLoader.access$1(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.widget.GraphObjectPagingLoader$2.onCompleted(Unknown Source)
E/AndroidRuntime(27472):    at com.facebook.Request$4.run(Unknown Source)
E/AndroidRuntime(27472):    at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime(27472):    at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(27472):    at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(27472):    at android.app.ActivityThread.main(ActivityThread.java:3687)
E/AndroidRuntime(27472):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(27472):    at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(27472):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
E/AndroidRuntime(27472):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
E/AndroidRuntime(27472):    at dalvik.system.NativeStart.main(Native Method)

Пытаясь избежать этой ошибки, я не трогал все классы Facebook, но нет работа. Мой текущийproguard-project.txt файл:

-keep class com.facebook.** {
   *;
}

Мой текущийprojet.properties файл (выдержка):

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

Как видите, мойproguard Конфигурация "специализация» изэтот файл.

Если я поставлю-dontobfuscate вproguard-project.txt файл, он будет работать. Но что я неЯ понимаю, чтоkeep class com.facebook.** уже должны препятствовать тому, чтобы классы, связанные с Facebook, были запутаны. Что говорит о том, что проблема не имеет прямого отношения к занятиям в Facebook.

выдержка из кода это бросаетcom.facebook.FacebookGraphObjectException является:

static  U coerceValueToExpectedType(Object value, Class expectedType, 
        ParameterizedType expectedTypeAsParameterizedType) {

    // [...]

    } else if (Iterable.class.equals(expectedType) || Collection.class.equals(expectedType)
        || List.class.equals(expectedType) || GraphObjectList.class.equals(expectedType)) {
        if (expectedTypeAsParameterizedType == null) {
            throw new FacebookGraphObjectException("can't infer generic type of: " + expectedType.toString());
        }
    // [...]
}

Очевидно, чтоexpectedTypeAsParameterizedType являетсяnull в релизной сборке. Но в обеих сборках (отладка и выпуск)expectedType этоcom.facebook.model.GraphObjectList интерфейс. К сожалению я неЯ почти ничего не понимаю в понятиях отражения Java.

Как я могу решить эту проблему?

Ответы на вопрос(4)

Ваш ответ на вопрос