将doNotStrip packagingOptions设置为特定的buildType

时间:2018-10-24 15:08:06

标签: android gradle android-ndk

我的项目有3种不同的buildType,我只需要其中一种来保留其本机库的调试信息。我正在使用com.android.tools.build:gradle:3.1.4

我尝试了以下

buildTypes {

   debug {
   ...
   }

   release {
   ...
   }

   unstripped {
       ...
       packagingOptions {
           doNotStrip '**/.*so'
       } 
   }
}

但是这会使所有buildType都保留未压缩的库版本。

我还尝试将doNotStrip模式更改为类似'**/unstripped/*.so'的方式,但这似乎无济于事,因为docs说路径与APK的根目录有关。

1 个答案:

答案 0 :(得分:3)

这是您的解决方法:

提供命令行选项“ doNotStrip

  1. 在下方添加到您的app/build.gradle

    android {
        ...
        if (project.hasProperty("doNotStrip")) {
            packagingOptions {
                doNotStrip '**/.*so'
            }
        }
        ...
    }
    
  2. 使用以下命令通过将选项doNotStrip馈入命令来生成未剥离的APK

    ./gradlew assembleUnstripped -PdoNotStrip
    
  3. 对于其他构建类型,您仍然可以使用常规构建命令。例如

    ./gradlew assembleDebug
    

    ./gradlew assembleRelease
    

    但不要将选项doNotStrip传递给命令。