Причина "предостережения" фактически задокументирована в проекте Android main_rules.xml
($ANDROID_SDK_ROOT/tools/ant/main_rules.xml
):
<target name="-set-release-mode">
<!-- release mode is only valid if the manifest does not explicitly
set debuggable to true. default is false.
We actually store build.packaging.debug, not build.release -->
<xpath input="AndroidManifest.xml" expression="/manifest/application/@android:debuggable"
output="build.packaging.debug" default="false"/>
...
</target>
Итак, вы хотите проверить это build.mode.debug
(выполняется через ant debug
), build.mode.release
(когда @debuggable=false
и выполнено с ant release
), и, наконец, для удовлетворения вашего предупреждения: build.packaging.debug
(когда @debuggable=true
и выполнено с ant release
)
Вот пример, который будет работать автоматически после предварительной компиляции:
<target name="-my-debug-precompile" if="build.mode.debug">
<!-- This is executed for any "debug" build ("ant debug") -->
</target>
<target name="-my-release-precompile" unless="build.mode.debug">
<!-- This is executed for any non-"debug" build (e.g., "ant release",
regardless of the @debuggable attribute in AndroidManifest.xml) -->
</target>
<!-- This is called automatically by Android's ant tasks, and delegates the
task to one of the above two targets: -->
<target name="-pre-compile" depends="-my-debug-precompile,-my-release-precompile" />