Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android-maven-plugin: Disable debug build for apk

I am not clear about the exact procedure for disabling debug build while building with android-maven-plugin:

I understand that the export wizard with ADT(21.1) will automatically disable debugging but it is broken as BuildConfig.DEBUG always returns true and my logging used to depend on it. (Now I have my own property for logging defined in my maven build profiles.)

So if I have to disable debugging using android-maven-plugin, what is the the right way to do it?

I use the following plugins:

  1. maven-compiler-plugin
  2. maven-jarsigner-plugin
  3. proguard-maven-plugin
  4. android-maven-plugin with zipalign goal and configuration.

I am not sure whether signing and zipaligning automatically disables debugging because I see the following line in the maven output:

[INFO] --- android-maven-plugin:3.5.0:apk (default-apk) @ stackx ---
[INFO] Copying local assets files to combined assets directory.
[INFO] Enabling debug build for apk.

Is there an explicit way to disable debugging?

like image 555
Prasanna Avatar asked Feb 24 '13 19:02

Prasanna


1 Answers

Check out changelog for Android Maven Plugin 3.5.0 - released 2012-12-18:

ATTENTION

Since non-release builds are now debuggable by default you NEED TO ensure that the release parameter is set to true in your release build.

In the pom this would be e.g.

<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
    <release>true</release>

or you could activate on the command line with e.g

mvn clean deploy -Dandroid.release=true

or if you use the release plugin just add the above pom config to the release profile.

Source Code:

com/jayway/maven/plugins/android/phase09package/ApkMojo.java

Related Pull Request:

  • Non-release builds will now automatically be debuggable
  • Support BuildConfig generation

Off Topic:

For logging management, A more elegant and strategic way is to use Proguard remove all log call at project release phase, see answer here for more details.

like image 180
yorkw Avatar answered Oct 23 '22 22:10

yorkw