在哪里可以找到与proguard相关的Android构建选项文档
我在android构建系统上做了很多工作,遇到了proguard删除必需类导致NoClassDefFoundError的情况。我可以说找不到该类,但我花了一段时间才发现proguard把用我的代码构建的类搞乱了 我最终发现,通过向Android.mk文件添加在哪里可以找到与proguard相关的Android构建选项文档,android,build,build-process,proguard,Android,Build,Build Process,Proguard,我在android构建系统上做了很多工作,遇到了proguard删除必需类导致NoClassDefFoundError的情况。我可以说找不到该类,但我花了一段时间才发现proguard把用我的代码构建的类搞乱了 我最终发现,通过向Android.mk文件添加LOCAL\u proguard\u ENABLED:=disabled,可以阻止proguard运行 我之所以能够这样做,是因为我碰巧访问了其他人的Android.mk文件,该文件也做了同样的操作 我无法找到以下内容的任何文档 LOCAL_
LOCAL\u proguard\u ENABLED:=disabled
,可以阻止proguard运行
我之所以能够这样做,是因为我碰巧访问了其他人的Android.mk文件,该文件也做了同样的操作
我无法找到以下内容的任何文档
LOCAL_PROGUARD_FLAGS
LOCAL_PROGUARD_ENABLED
LOCAL_PROGUARD_FLAG_FILES
据我所知,LOCAL\u PROGUARD\u FLAGS
的典型用法是识别PROGUARD配置文件的位置,如下所示:
LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
问题是我无法找出它与如下使用的LOCAL\u PROGUARD\u FLAG\u文件的区别:
LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL\u PROGUARD\u ENABLED
可用于禁用PROGUARD,但是除了disabled
选项之外,我不知道该选项还能使用什么
LOCAL_PROGUARD_ENABLED := disabled
有人知道我在哪里可以找到这些构建选项的文档(官方或非官方)吗?谷歌似乎没有返回任何对我搜索有用的信息。我也搜索了这些信息,偶然发现了这个补丁:
Now the meaning of the LOCAL_PROGUARD_ENABLED options:
* full:
Use the build system's default configurations:
with shrink but no obfuscation or optimization,
global proguard flags in build/core/proguard.flags
are applied.
* custom:
The same as "full" except no aapt-generated resource-related
proguard flags.
* nosystem:
Don't use any build system's default configurations; but
aapt-generated proguard flags are still applied. You are
responsible for any other flags.
* disabled:
Disable proguard.
* obfuscation:
The same as "full" but with obfuscation enabled.
* optimization:
The same as "full" but with optimization enabled.
* no value (the default):
The build system chooses the proper value: "full" if it's an
app; "disabled" if it's a library.
现在,本地\u PROGUARD\u启用选项的含义如下:
*全部:
使用生成系统的默认配置:
具有收缩功能,但没有模糊或优化功能,
build/core/proguard.flags中的全局proguard标志
都适用。
*自定义:
与“完全”相同,只是没有aapt生成的相关资源
前进旗。
*医院系统:
不要使用任何构建系统的默认配置;但是
aapt生成的proguard标志仍然适用。你是
负责任何其他旗帜。
*残疾人士:
禁用proguard。
*混淆:
与“完整”相同,但启用了模糊处理。
*优化:
与“完全”相同,但启用了优化。
*无值(默认值):
构建系统选择适当的值:“full”,如果是
应用程序;如果是库,则为“禁用”。
以下是链接:
您阅读过Android开发网站上的Proguard文档吗?特别是配置Proguard和使用-keep
以防止它剥离某些类?@Squonk是的,我已经阅读了您链接到的文档。不幸的是,那些文件已经过时了。随着ADT 17的发布,proguard的使用方式发生了变化。请参阅:。这些文档都没有提到我最初询问的三个Android.mk构建选项。我必须进行实验,以找到一个有效的解决方案。如果我能找到一些文档的话,我会节省几个小时。它还将有助于验证我的解决方案是否是最佳解决方案。