Bru*_*osa 5 android gradle android-ndk
我的项目有 3 种不同的 buildType,我只需要其中一种即可保留其本机库的调试信息。我正在使用com.android.tools.build:gradle:3.1.4.
我尝试了以下
buildTypes {
debug {
...
}
release {
...
}
unstripped {
...
packagingOptions {
doNotStrip '**/*.so'
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这使得所有 buildType 都保留未剥离的库版本。
我也尝试将doNotStrip模式更改为类似的内容,'**/unstripped/*.so'但这似乎对我没有帮助,因为文档说该路径与 APK 的根目录相关。
这是您的解决方法:
提供命令行选项“ doNotStrip”
在下面添加到您的 app/build.gradle
android {
...
if (project.hasProperty("doNotStrip")) {
packagingOptions {
doNotStrip '**/*.so'
}
}
...
}
Run Code Online (Sandbox Code Playgroud)使用以下命令通过向命令提供选项来生成未剥离的 apkdoNotStrip。
./gradlew assembleUnstripped -PdoNotStrip
Run Code Online (Sandbox Code Playgroud)对于其他构建类型,您仍然可以使用正常的构建命令。例如
./gradlew assembleDebug
Run Code Online (Sandbox Code Playgroud)
或者
./gradlew assembleRelease
Run Code Online (Sandbox Code Playgroud)
但不要doNotStrip为命令提供选项。
自 Android Gradle 插件 (AGP) 版本7.0.0起,新语法支持用例。例子:
androidComponents {
onVariants(selector().withBuildType("debug")) {
packaging.jniLibs.keepDebugSymbols.add("**/debugDoNotStrip.so")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4024 次 |
| 最近记录: |