2017-02-03 19 views
2

Я установил SDK для Facebook и не имею ошибок, но я не могу экспортировать его как часть моего проекта Android. Я получаю ошибку ниже при включении ProGuard:Android Facebook SDK Eclipse Proguard

Warning: com.facebook.applinks.FacebookAppLinkResolver$2: can't find referenced class bolts.Task$TaskCompletionSource 
Warning: com.facebook.applinks.FacebookAppLinkResolver$2: can't find referenced class bolts.AppLink$Target 
Warning: com.facebook.applinks.FacebookAppLinkResolver$2: can't find referenced class bolts.AppLink 
Warning: com.facebook.applinks.FacebookAppLinkResolver$2: can't find referenced class bolts.AppLink$Target 
Warning: com.facebook.messenger.MessengerUtils: can't find referenced class bolts.AppLinks 
Warning: com.facebook.messenger.MessengerUtils: can't find referenced class bolts.AppLinks 
    You should check if you need to specify additional program jars. 
Warning: there were 62 unresolved references to classes or interfaces. 
     You may need to specify additional library jars (using '-libraryjars'). 
java.io.IOException: Please correct the above warnings first. 
at proguard.Initializer.execute(Initializer.java:321) 
at proguard.ProGuard.initialize(ProGuard.java:211) 
at proguard.ProGuard.execute(ProGuard.java:86) 
at proguard.ProGuard.main(ProGuard.java:492) 

Я добавил ниже мой файл ProGuard, но я все еще получаю ошибку:

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

Как следует настроить ProGuard использовать Facebook SDK?

ответ

0

ProGuard сообщает вам, что ссылки SDK для ссылок в пакете bolts, но ProGuard не могут найти эти классы, потому что, скорее всего, вы не включаете болты в своем приложении.

Чтобы это исправить, вы можете:

  1. СКАЖИТЕ ProGuard игнорировать недостающий зависимость, добавив строку

    -dontwarn bolts.** 
    

    в файл конфигурации ProGuard. Это не должно вызывать проблем, потому что SDK для Facebook может обнаруживать внутренне, есть ли болты, и только попытаться использовать его в этом случае.

  2. Добавить болты в зависимости от вашего проекта, поставив эти строки в файле Gradle:

    dependencies { 
        compile 'com.parse.bolts:bolts-tasks:1.4.0' 
        compile 'com.parse.bolts:bolts-applinks:1.4.0' 
    } 
    

Вариант 1, вероятно, лучший выбор, если вы на самом деле не нужны болты.

3

Я использую эти настройки в моем Proguard-project.txt:

# Facebook Audience Network 
-keep class com.facebook.ads.** { *; } 
-keep class com.facebook.ads.internal.** { *; } 
-keep class com.google.ads.mediation.facebook.FacebookAdapter {*;} 
-keep class com.google.android.exoplayer.** {*;} 

-dontwarn com.facebook.ads.** 
-dontwarn com.google.android.exoplayer.** 

 Смежные вопросы

  • Нет связанных вопросов^_^