Android 库向量转换为默认混淆的 png 和 Kotlin 文件

Android library vector converted to png and Kotlin files obfuscated by default

我刚刚使用 Android Studio(AS) 创建了一个新的 android 项目。我添加了一个带有矢量可绘制对象的 library module 和一个带有注释的 Kotlin 文件。 我 运行 assemble 发布并生成一个 aar 文件。

我用 AS 反编译器打开这个 aar 发布文件,我看到矢量文件被转换为 png 用于不同的可绘制对象,Kotlin 文件被混淆并显示 compiled code

原始xml矢量文件只能在目录drawable-anydpi-v24

中找到

如何为我的库模块禁用 vector to pngfile obfuscation

我有默认值build.gradle:minifyEnabled false

(我已经知道 org.jetbrains.dokka 所以请不要说只是使用它)

感谢@Gustavo 在我的问题中的评论,我开始调查更多关于生成的 png 文件的问题。

我有 min sdk 21,我也尝试了 22,结果相同。 然后在玩了一些矢量之后,我发现导致我的问题的是 属性 android:fillType="evenOdd"

我测试了这个 属性 和没有它,我得到了这两个结果:

来源xml:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="80dp"
android:height="228dp"
android:alpha="0.81"
android:viewportWidth="99"
android:viewportHeight="284">

<path
    android:fillAlpha="0.9"
    android:fillColor="#33B8E3"
    android:strokeLineJoin="round"
    android:strokeLineCap="round"
    android:strokeColor="#000"
    android:strokeAlpha="0.9"
    android:strokeWidth="1"
    android:fillType="evenOdd" // removing this line
    android:pathData="M49.5 112.842c25.366 0 48.654-27.702 48.654-57.745C98.154 25.054 76.371 0.7 49.5 0.7 22.63 0.7 0.846 25.054 0.846 55.097s23.287 57.745 48.654 57.745z" />

</vector>

我得到了 aar 构建的这两个结果:

没有填充类型值

填充类型值

之后我找到这个question in Whosebug

我将minSdk设置为24后,不再生成png文件了。

我目前无法使用如此低的 minSdk,但至少我知道是什么原因造成的。