我已经在项目中添加了动态功能模块,并且在模拟器上尝试运行或直接在设备上运行(使用运行按钮)时一切正常,但是在尝试使用命令生成APK时,一切正常行(:app:assembleRelease
)中,动态功能模块将不会包含在最终的APK中,并且会丢失。我知道我可以创建一个Android应用程序捆绑包,然后使用所有模块从.aab
创建一个APK。但问题是:
有没有一种方法可以创建完整的APK(所有模块,例如:动态 功能包括在内)直接形成源?
答案 0 :(得分:2)
我认为您不能直接从源代码创建完整的APK。
您应该采取3个步骤:
构建应用捆绑包:
./gradlew clean bundleRelease
bundletool带有--mode = universal开关可生成一个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
答案 1 :(得分:0)
在命令行中,您应该使用:app:bundleRelease
来构建Android应用程序捆绑包(.San),然后使用bundletool
来生成APK并将其部署到设备上。
完整的文档可以在这里找到:https://developer.android.com/studio/command-line/bundletool