aws-samples / amazon-ivs-real-time-for-android-demo

This repository contains a social real-time application for Android devices. The app leverages Amazon IVS Real-time streaming and uses the Amazon IVS Broadcast SDK for the video and audio-only experiences.
https://ivs.rocks/
MIT License
5 stars 2 forks source link

Serious App size for relase build after migrate to build.gradel.kts gradle-8.4 #10

Closed rameshvoltella closed 1 month ago

rameshvoltella commented 1 month ago

Hi there is a serious issue in app size for release build, when we build we get error like this

Missing class org.chromium.net.CronetEngine$Builder (referenced from: com.amazonaws.ivs.net.CronetHttpClient com.amazonaws.ivs.net.CronetHttpClient.getInstance(android.content.Context)) Missing class org.chromium.net.CronetEngine (referenced from: org.chromium.net.CronetEngine com.amazonaws.ivs.net.CronetHttpClient.engine and 2 other contexts) Missing class org.chromium.net.CronetException (referenced from: void com.amazonaws.ivs.net.CronetHttpClient$RequestCallback.onFailed(org.chromium.net.UrlRequest, org.chromium.net.UrlResponseInfo, org.chromium.net.CronetException)) Missing class org.chromium.net.UploadDataProvider (referenced from: void com.amazonaws.ivs.net.CronetHttpClient.execute(com.amazonaws.ivs.net.Request, com.amazonaws.ivs.net.ResponseCallback)) Missing class org.chromium.net.UploadDataProviders (referenced from: void com.amazonaws.ivs.net.CronetHttpClient.execute(com.amazonaws.ivs.net.Request, com.amazonaws.ivs.net.ResponseCallback)) Missing class org.chromium.net.UrlRequest$Builder (referenced from: void com.amazonaws.ivs.net.CronetHttpClient.execute(com.amazonaws.ivs.net.Request, com.amazonaws.ivs.net.ResponseCallback)) Missing class org.chromium.net.UrlRequest$Callback (referenced from: void com.amazonaws.ivs.net.CronetHttpClient$RequestCallback.<init>(java.util.concurrent.ScheduledExecutorService, com.amazonaws.ivs.net.Request, java.util.concurrent.ScheduledFuture, com.amazonaws.ivs.net.ResponseCallback) and 2 other contexts) Missing class org.chromium.net.UrlRequest (referenced from: org.chromium.net.UrlRequest com.amazonaws.ivs.net.CronetHttpClient$2.val$urlRequest and 11 other contexts) Missing class org.chromium.net.UrlResponseInfo (referenced from: void com.amazonaws.ivs.net.CronetHttpClient$RequestCallback.onFailed(org.chromium.net.UrlRequest, org.chromium.net.UrlResponseInfo, org.chromium.net.CronetException) and 4 other contexts)

so in the proguard we add this -dontwarn org.chromium.net.CronetEngine$Builder -dontwarn org.chromium.net.CronetEngine -dontwarn org.chromium.net.CronetException -dontwarn org.chromium.net.UploadDataProvider -dontwarn org.chromium.net.UploadDataProviders -dontwarn org.chromium.net.UrlRequest$Builder -dontwarn org.chromium.net.UrlRequest$Callback -dontwarn org.chromium.net.UrlRequest -dontwarn org.chromium.net.UrlResponseInfo

So after that the app build successfully by the apk size exceed to 100+mb where in before we migrate to kts it was jus 10 mb.This is a serious issue for us and we rely on your player, SO please give us help or update

the dependency we used is implementation("com.amazonaws:ivs-broadcast:1.20.0:stages@aar") implementation ("com.amazonaws:ivs-player:1.29.0")

i tried all you update from maven repo noting worked. You guys can only help, Dont ignore like usual issue this is a serious issue i can assure you guys.@mboulin Please help

mboulin commented 1 month ago

Thank you for bringing this issue to our attention. We understand that you are experiencing an increase in the app size for the release build after migrating to Kotlin Script (KTS). The build process fails due to missing classes related to org.chromium.net. You have added Proguard rules to ignore warnings for these missing classes, which allowed the app to build successfully, but resulted in an APK size increase.

Do make sure to:

If this continues to be an issue, I encourage you to contact AWS support, since this issue may not be strictly related to the demo application itself.

Please note that these demos are provided for educational purposes only and are not intended for production use. They serve as a foundation to help you understand the concepts and capabilities, but additional engineering and customization are required to develop production-ready versions based on these demos.