Use the `includedescriptorclasses` modifier with the native keep rules
to ensure native method signatures remain preserved. This matches
common native Proguard rules used elsewhere.
Bug: 196084106
Test: m + presubmit
Change-Id: Ie413459ad0f65ce6b8cd6eb34318494c12568c5e
The lite proto runtime uses reflection to access fields based on the names in
the schema, keep all the fields.
Bug: 117607748
Bug: 140062984
Test: m checkbuild
Change-Id: I39bc7d28f619dd2ccaee603e4d407aa7ad33f534
Merged-In: I39bc7d28f619dd2ccaee603e4d407aa7ad33f534
R8 now warns:
Warning in ./build/make/core/proguard_basic_keeps.flags:
Ignoring option: -optimizations
Remove the flags, they are not used by R8.
Fixes: 123401079
Test: m checkbuild
Change-Id: I8b0c558be8bcf943652dddb71802ddc145ae42c1
When an app's LOCAL_SDK_VERSION is lower than the support library's
LOCAL_SDK_VERSION, we artifically raises the "SDK version" "linked"
by ProGuard, to
- suppress ProGuard warnings of referencing symbols unknown to the
lower SDK version.
- prevent ProGuard stripping subclass in the support library that
extends class added in the higher SDK version.
This allows us to remove the dangerous ProGuard flag
"-dontwarn android.support.**".
Notes:
- We don't raise the app's LOCAL_SDK_VERSION, so that the app's own
code is still unable to use the higher SDK version.
- For platform build, we can't just raise to the "current" SDK,
because would break apps that use APIs removed from the current SDK.
We raise it to framework.jar instead, which contains the most complete
symbol set.
Bug: 20658265
Change-Id: I90099073457a65cb8031fbaec6b396d68ce614a7
(cherry picked from commit 8e8d1e7aba)
It seems with that flag Proguard modifies the class files in a way that
Dalvik does not like.
Bug: 10307364
Change-Id: If0cc7552da00ae8a3a3a39a9f2f029819ca3164a
So all most commonly-used flags go to proguard_basic_keeps.flags
and they will still be applied when LOCAL_PROGUARD_ENABLED=nosystem.
Bug: 9203442
Change-Id: If018076dc625ac1efe31898b179dbba850218aaf