Отчеты об ошибках консоли разработчика и использование «восстановления» в ProGuard

1

Я подписываю и выпускаю приложения со стандартной установкой Eclipse. Я не испортил файл default.properties или файл proguard.cfg, но когда я просматриваю трассировку стека в консоли разработчика, номера строк все еще отключены. Поэтому мне кажется, что мой код все еще слегка запутывается. Я прочитал документы ProGuard, и я попытался найти файл mapping.txt, который должен быть в /proguard, но не нашел там такой папки или bin.

Что здесь происходит? Есть ли способ остановить его от автоматического обфускации или, по крайней мере, дать мне файл mappings.txt? Я был бы признателен за понимание. Здесь содержимое моего файла default.properties:

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.

# Project target.
target=android-7

И вот мой файл proguard.cfg, который был автоматически сгенерирован:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
Теги:
obfuscation
deobfuscation

1 ответ

0
Лучший ответ

В default.properties вам понадобится строка

proguard.config=proguard.cfg

чтобы включить Proguard.

От ProGuard docs:

Чтобы включить ProGuard, чтобы он выполнялся как часть сборки Ant или Eclipse, установите свойство proguard.config в файле /default.properties. Путь может быть абсолютным путем или контуром относительно корня проекта.

  • 0
    Итак, каков наилучший способ добавить это в default.properties? Могу ли я просто проигнорировать это предупреждение и отредактировать его напрямую, или оно где-то скрыто в свойствах проекта Eclipse? Спасибо!
  • 0
    Просто поместите строку 'proguard.config = proguard.cfg' ниже (или выше) вашей 'target = android-7' в default.properties

Ещё вопросы

Сообщество Overcoder
Наверх
Меню