gpt4 book ai didi

Android Studio(gradle)为付费版生成双倍大小的apk文件

转载 作者:太空狗 更新时间:2023-10-29 14:17:06 24 4
gpt4 key购买 nike

当我构建付费版本时,Android Studio(和 Gradle)会生成双倍大小的 apk 文件?

这与从 Android Studio 和/或命令行生成 apk 的结果相同:

gradle clean assembleRelease

它额外包含以下目录:

assets/
main/
paid/

因此它变得非常大。

我的 build.gradle 对付费版本有以下定义:

sourceSets {

paid {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/paid']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}

}

在我的 src/paid/res 目录中,我只有以下额外内容(从 apk 解压):

40  ./res/drawable
8 ./res/drawable-hdpi
8 ./res/drawable-ldpi
8 ./res/drawable-mdpi
8 ./res/raw
8 ./res/raw-de
8 ./res/raw-sv
16 ./res/values
8 ./res/values-de
8 ./res/values-sv
120 ./res
120 .

我使用以下内容:

productFlavors {

free {
packageName "com.xyz.abc"
}

paid {
packageName "com.xyz.abcpro"
}

}

以下目录大小(从 apk 解压):

免费:

208 ./META-INF
8 ./org/apache/http/client
8 ./org/apache/http/entity/mime
8 ./org/apache/http/entity
24 ./org/apache/http
24 ./org/apache
24 ./org
888 ./res/drawable
584 ./res/drawable-hdpi
552 ./res/drawable-ldpi
560 ./res/drawable-mdpi
16 ./res/drawable-xhdpi
16 ./res/drawable-xxhdpi
488 ./res/layout
32 ./res/layout-land
8 ./res/layout-v10
16 ./res/layout-v17
8 ./res/layout-v7
8 ./res/layout-v8
64 ./res/menu
16 ./res/raw
16 ./res/raw-de
16 ./res/raw-sv
80 ./res/xml
3368 ./res
8448 .

付费:

8   ./assets/scripts
8 ./assets
1000 ./main/res/drawable
720 ./main/res/drawable-hdpi
584 ./main/res/drawable-ldpi
656 ./main/res/drawable-mdpi
16 ./main/res/drawable-xhdpi
24 ./main/res/drawable-xxhdpi
504 ./main/res/layout
40 ./main/res/layout-land
8 ./main/res/layout-v10
16 ./main/res/layout-v17
8 ./main/res/layout-v7
8 ./main/res/layout-v8
64 ./main/res/menu
16 ./main/res/raw
16 ./main/res/raw-de
16 ./main/res/raw-sv
152 ./main/res/values
72 ./main/res/values-de
72 ./main/res/values-sv
96 ./main/res/xml
4088 ./main/res
4104 ./main
368 ./META-INF
8 ./org/apache/http/client
8 ./org/apache/http/entity/mime
8 ./org/apache/http/entity
24 ./org/apache/http
24 ./org/apache
24 ./org
40 ./paid/res/drawable
8 ./paid/res/drawable-hdpi
8 ./paid/res/drawable-ldpi
8 ./paid/res/drawable-mdpi
8 ./paid/res/raw
8 ./paid/res/raw-de
8 ./paid/res/raw-sv
16 ./paid/res/values
8 ./paid/res/values-de
8 ./paid/res/values-sv
120 ./paid/res
120 ./paid
888 ./res/drawable
584 ./res/drawable-hdpi
552 ./res/drawable-ldpi
560 ./res/drawable-mdpi
16 ./res/drawable-xhdpi
16 ./res/drawable-xxhdpi
488 ./res/layout
32 ./res/layout-land
8 ./res/layout-v10
16 ./res/layout-v17
8 ./res/layout-v7
8 ./res/layout-v8
64 ./res/menu
16 ./res/raw
16 ./res/raw-de
16 ./res/raw-sv
80 ./res/xml
3368 ./res
14656 .

免费 apk 大小:

-rw-r--r-- 1 名管理员 952930 Jan 6 10:01 free-release.apk

付费 apk 大小:

-rw-r--r-- 1 名管理员 1880495 Jan 6 10:00 paid-release.apk

这是一个标准的 Android Studio 设置,带有 main/然后平行于 main/以下目录 paid/:

.
./res
./res/drawable
./res/drawable/ic_launcher.png
./res/drawable/widget_icon_large.png
./res/drawable/widget_icon_small.png
./res/drawable-hdpi
./res/drawable-hdpi/ic_launcher.png
./res/drawable-ldpi
./res/drawable-ldpi/ic_launcher.png
./res/drawable-mdpi
./res/drawable-mdpi/ic_launcher.png
./res/raw
./res/raw/help.html
./res/raw-de
./res/raw-de/help.html
./res/raw-sv
./res/raw-sv/help.html
./res/values
./res/values/commons.xml
./res/values/strings.xml
./res/values-de
./res/values-de/strings.xml
./res/values-sv
./res/values-sv/strings.xml

工作室布局: enter image description here

更新 1:

当我将一个空目录免费并行添加到付费并更改以下内容时:

sourceSets {

free {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/free']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}

paid {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/paid']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}

}

现在两个 apk 具有相同的双倍大小!?

更新2:

一起删除了 sourceSets,它起作用了!

最佳答案

我认为您指定的 sourceSets 不正确。

如果您返回到原始配置、免费和付费产品口味、src/paid/res 中的资源,您可以删除 sourceSets 元素,应用程序应该可以正常构建。

关于Android Studio(gradle)为付费版生成双倍大小的apk文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20947490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com