Ошибка при экспорте apk - FacebookSDK

Итак, у меня есть это приложение, и несколько действий выполняют запросы к внешней базе данных через Asynk Task, и результаты заполняют макет.

Пока все хорошо, все работало нормально, пока я не экспортировал приложение. После того, как я подписал экспортированное приложение, оно начало падать при этом действии, которое использует facebook sdk (и это единственный, кто это делает). из строки json он получает имя, а с помощью facebook sdk публикует ссылку на facebook, которая в описании имеет это имя. (Я не знаю, есть ли проблема здесь, но ее не должно быть), поэтому я решил запустить log cat на экспортированном apk, пока она работала (я сделал ее отлаживаемой в манифесте) и получил этот журнал, который заставил меня даже больше запутался:

11-04 16:01:19.877: E/AndroidRuntime(11372): FATAL EXCEPTION: main
11-04 16:01:19.877: E/AndroidRuntime(11372): com.facebook.ae: com.facebook.c.g got an unexpected method signature: public abstract org.json.JSONObject com.facebook.c.d.q()
11-04 16:01:19.877: E/AndroidRuntime(11372):    at com.facebook.c.i.a(Unknown Source)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at com.facebook.c.g.invoke(Unknown Source)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at $Proxy0.q(Native Method)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at com.facebook.b.aM.onPostExecute(Unknown Source)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at android.os.AsyncTask.finish(AsyncTask.java:631)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at android.os.AsyncTask.access$600(AsyncTask.java:177)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at android.os.Handler.dispatchMessage(Handler.java:107)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at android.os.Looper.loop(Looper.java:194)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at android.app.ActivityThread.main(ActivityThread.java:5422)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at java.lang.reflect.Method.invokeNative(Native Method)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at java.lang.reflect.Method.invoke(Method.java:525)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
11-04 16:01:19.877: E/AndroidRuntime(11372):    at dalvik.system.NativeStart.main(Native Method)
11-04 16:01:19.911: I/System.out(11372): [socket][/192.168.0.14:33448] connected

Кто-нибудь знает, что может быть не так?

Я могу опубликовать код, если хотите, но эта активность огромна.


person pihh    schedule 05.11.2014    source источник


Ответы (1)


Итак, похоже, проблема была в файле proguard-project.txt.

Я совсем забыл добавить эту строку:

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

Что ж, вот ответ, proguard может быть занозой в заднице, поэтому он может помочь другим людям, у которых происходит сбой apk, и они не понимают, почему.

Отныне каждую библиотеку, которую я добавляю в свой проект, я проверяю в proguard txt.

person pihh    schedule 05.11.2014