2014-11-06 2 views
1

Я использую библиотеку игровых сервисов google в моем проекте Android. Я не включаю его как банку, а как проект библиотеки в свойствах моего проекта. Сейчас я получаю сообщение об ошибкеКак указать проект библиотеки в proguard

Невозможно выполнить Dex: идентификатор метода не в [0, 0xFFFF]: 65536

Для решения этого результата StackOverflow, чтобы включить библиотеку в ProGuard.

Я включил файлы библиотеки jar в proguard, указав путь к файлу jar.

Как включить проект библиотеки в proguard.

Пожалуйста, помогите

ответ

0

Вы не можете просто «включить проект библиотеки» в ProGuard. Вы должны добавить определенные правила. Правила для сервисов Google Play Google являются shown here

-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; 
} 

Они идут в файле proguard-project.txt в корневом каталоге проекта.

+0

Моя проблема заключается в том, что мое приложение превысило 65536 методов, а библиотека игровых сервисов goole play имеет только 30 тыс. Методов. Причина, по которой я использую библиотеку google play services, - это реализовать карты Google в моем приложении. Я хочу, чтобы proguard удалял все неиспользуемые методы из этой библиотеки. Вышеупомянутый код заключается в том, чтобы не допустить повторного удаления proguard? – user3008777

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