我已经在我的项目中添加了一个动态功能模块,并且在尝试模拟器或直接在设备上运行(使用运行按钮)时一切正常,但是当我尝试使用命令行(:app:assembleRelease
)生成 APK 时,动态功能模块不会被包括在内在最终的 APK 中,它不见了。我知道我可以创建一个 Android App Bundle,然后.aab
使用所有模块创建一个 APK。但问题是:
有没有办法直接从源代码创建完整的 apk(所有模块,例如:包括动态功能)?
我已经在我的项目中添加了一个动态功能模块,并且在尝试模拟器或直接在设备上运行(使用运行按钮)时一切正常,但是当我尝试使用命令行(:app:assembleRelease
)生成 APK 时,动态功能模块不会被包括在内在最终的 APK 中,它不见了。我知道我可以创建一个 Android App Bundle,然后.aab
使用所有模块创建一个 APK。但问题是:
有没有办法直接从源代码创建完整的 apk(所有模块,例如:包括动态功能)?
我认为您不能直接从源代码创建完整的 apk。
你应该采取3个步骤:
构建应用程序包:
./gradlew clean bundleRelease
使用开关 --mode=universal 通过 bundletool 生成一个 apk
java -jar bundletool-all-0.10.2.jar build-apks --bundle=app.aab --output=release.apks --ks=release.keystore --ks-pass=pass:xxxxxx --ks-key-alias=xxxxxxkey --key-pass=pass:xxxxxx --mode=universal
解压生成的文件:
unzip release.apks
使用命令行,您应该使用:app:bundleRelease
which 将构建一个 Android App Bundle (.San),然后用于bundletool
生成 APK 并将它们部署到设备。
完整的文档可以在这里找到:https ://developer.android.com/studio/command-line/bundletool