To mój pierwszy projekt w Android Studio, a kod moich aplikacji nie jest zaciemniony. Używam tej konfiguracji w pliku build.gradle:
Używam kompilacji> Generuj podpisany plik APK ... z zaznaczonym Run Proguard. A kiedy testowałem przy użyciu Apk_OneClick.v4.2, mój kod jest całkowicie łatwy do odczytania:
Proszę pomóż mi. :(
android
android-studio
proguard
Felipe Porge Xavier
źródło
źródło
Odpowiedzi:
Prawdopodobnie nie podpisujesz wersji wydania pakietu APK za pomocą kreatora podpisywania. Możesz zbudować pakiet APK wydania z wiersza poleceń za pomocą polecenia:
lub możesz wybrać wariant wydania z widoku Warianty kompilacji i zbudować go z GUI:
źródło
Możesz skonfigurować plik build.gradle pod kątem implementacji programu Proguard. Może to być na poziomie modułu lub na poziomie projektu.
Pokazana konfiguracja dotyczy poziomu debugowania, ale możesz napisać własne style kompilacji, jak pokazano poniżej w buildTypes:
Lepiej jest mieć debugowanie,
minifyEnabled false
kompilację produkcyjną i inne kompilacje jakominifyEnabled true
.Skopiuj plik proguard-rules.txt do katalogu głównego modułu lub folderu projektu, takiego jak
$YOUR_PROJECT_DIR\YoutProject\yourmodule\proguard-rules.txt
Możesz zmienić nazwę pliku, jak chcesz. Po skonfigurowaniu użyj jednej z trzech dostępnych opcji, aby wygenerować kompilację zgodnie z typem buildType
Przejdź do zadania oceny w prawym panelu i wyszukaj
assembleRelease/assemble(#your_defined_buildtype)
zadania pod modułamiPrzejdź do opcji Build Variant w lewym panelu i wybierz kompilację z listy rozwijanej
Przejdź do katalogu głównego projektu w Eksploratorze plików i otwórz cmd / terminal i uruchom
Linux
./gradlew assembleRelease or assemble(#your_defined_buildtype)
Windows
gradlew assembleRelease or assemble(#your_defined_buildtype)
Możesz znaleźć apk w katalogu module / build.
Więcej o konfiguracji i lokalizacji plików proguard można znaleźć pod linkiem
http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard
źródło
NB .: Teraz zamiast
będziesz musiał użyć
źródło
Spróbuj zmienić nazwę pliku „proguard-rules.txt” na „proguard-android.txt” i usuń odniesienie do „proguard-rules.txt” w pliku gradle.
getDefaultProguardFile(...)
Wywołanie odwołuje inny domyślny plik PROGUARD, jeden udostępnianej przez Google, a nie, że w swoim projekcie. Więc usuń to również, aby tutaj plik gradle brzmiał:źródło
Pozostałe odpowiedzi to świetne odniesienia do korzystania z proguard. Jednak nie widziałem omawianego problemu, na który natknąłem się, że był to głupek. Po wygenerowaniu podpisanej wersji .apk jest ona umieszczana w
/release
folderze w Twojej aplikacji, ale moja aplikacja miała plik APK, którego nie było w/release
folderze. Dlatego spędziłem godziny na dekompilowaniu niewłaściwego apk, zastanawiając się, dlaczego moje zmiany proguard nie mają żadnego wpływu. Mam nadzieję, że to komuś pomoże!źródło
Oto niektóre z najczęściej używanych reguł Proguard, które należy dodać w pliku proguard-rules.pro w systemie Android Sutdio.
Nóż do masła
Modernizacja
OkHttp3
Gson
Maskowanie kodu
źródło