I have using below library in my application to upload data to Amazon S3.
implementation 'com.amplifyframework:aws-storage-s3:1.4.2'
implementation 'com.amplifyframework:aws-auth-cognito:1.4.2'
It's working fine in debug mode. Now I have generated a signed APK using below the Proguard configuration, with minifyEnabled true.
-keepnames class com.amazonaws.**
-keepnames class com.amazon.**
-keep class com.amazonaws.services.**.*Handler
-dontwarn com.fasterxml.jackson.**
-dontwarn org.apache.commons.logging.**
-dontwarn org.apache.http.**
-dontwarn com.amazonaws.http.**
-dontwarn com.amazonaws.metrics.**
Now my app keeps on crashing when I upload upload videos to S3.
Error log:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.aws, PID: 9367
java.lang.AssertionError: java.lang.NoSuchFieldException: ANY
at g.c.c.w.n.n$j0.<init>()
at g.c.c.w.n.n$w.b()
at g.c.c.e.l()
at g.c.c.w.n.i.a()
at g.c.c.w.n.i.e()
at g.c.c.w.n.i.b()
at g.c.c.e.l()
at g.c.c.e.w()
at g.c.c.e.x()
at g.c.c.e.t()
at g.c.c.e.s()
at com.amazonaws.mobileconnectors.s3.transferutility.TransferDBUtil.f()
at com.amazonaws.mobileconnectors.s3.transferutility.TransferDBUtil.k()
at com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility.l()
at com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility.k()
at com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility.j()
at com.amplifyframework.storage.s3.g.a.b()
at com.amplifyframework.storage.s3.e.e.e()
at com.amplifyframework.storage.s3.c.k()
at g.a.i.b.k()
at com.example.aws.Activity.VideoUploadActivity.Y0()
at com.example.aws.Activity.VideoUploadActivity.onOptionsItemSelected()
at android.app.Activity.onMenuItemSelected(Activity.java:3390)
at androidx.fragment.app.d.onMenuItemSelected()
at androidx.appcompat.app.e.onMenuItemSelected()
at androidx.appcompat.d.i.onMenuItemSelected()
at androidx.appcompat.d.i.onMenuItemSelected()
at androidx.appcompat.app.l$b.onMenuItemClick()
at androidx.appcompat.widget.Toolbar$a.onMenuItemClick()
at androidx.appcompat.widget.ActionMenuView$d.a()
at androidx.appcompat.view.menu.g.h()
at androidx.appcompat.view.menu.i.k()
at androidx.appcompat.view.menu.g.O()
at androidx.appcompat.view.menu.g.N()
at androidx.appcompat.widget.ActionMenuView.a()
at androidx.appcompat.view.menu.ActionMenuItemView.onClick()
at android.view.View.performClick(View.java:6312)
at android.widget.TextView.performClick(TextView.java:11202)
at android.view.View$PerformClick.run(View.java:23985)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6816)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1563)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1451)
Caused by: java.lang.NoSuchFieldException: ANY
at java.lang.Class.getField(Class.java:1549)
at g.c.c.w.n.n$j0.<init>()聽
at g.c.c.w.n.n$w.b()聽
at g.c.c.e.l()聽
at g.c.c.w.n.i.a()聽
at g.c.c.w.n.i.e()聽
at g.c.c.w.n.i.b()聽
at g.c.c.e.l()聽
at g.c.c.e.w()聽
at g.c.c.e.x()聽
at g.c.c.e.t()聽
at g.c.c.e.s()聽
at com.amazonaws.mobileconnectors.s3.transferutility.TransferDBUtil.f()聽
at com.amazonaws.mobileconnectors.s3.transferutility.TransferDBUtil.k()聽
at com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility.l()聽
at com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility.k()聽
at com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility.j()聽
at com.amplifyframework.storage.s3.g.a.b()聽
at com.amplifyframework.storage.s3.e.e.e()聽
at com.amplifyframework.storage.s3.c.k()聽
at g.a.i.b.k()聽
at com.example.aws.Activity.VideoUploadActivity.Y0()聽
at com.example.aws.Activity.VideoUploadActivity.onOptionsItemSelected()聽
at android.app.Activity.onMenuItemSelected(Activity.java:3390)聽
at androidx.fragment.app.d.onMenuItemSelected()聽
at androidx.appcompat.app.e.onMenuItemSelected()聽
at androidx.appcompat.d.i.onMenuItemSelected()聽
at androidx.appcompat.d.i.onMenuItemSelected()聽
at androidx.appcompat.app.l$b.onMenuItemClick()聽
at androidx.appcompat.widget.Toolbar$a.onMenuItemClick()聽
at androidx.appcompat.widget.ActionMenuView$d.a()聽
at androidx.appcompat.view.menu.g.h()聽
at androidx.appcompat.view.menu.i.k()聽
at androidx.appcompat.view.menu.g.O()聽
at androidx.appcompat.view.menu.g.N()聽
at androidx.appcompat.widget.ActionMenuView.a()聽
at androidx.appcompat.view.menu.ActionMenuItemView.onClick()聽
at android.view.View.performClick(View.java:6312)聽
at android.widget.TextView.performClick(TextView.java:11202)聽
at android.view.View$PerformClick.run(View.java:23985)聽
at android.os.Handler.handleCallback(Handler.java:751)聽
at android.os.Handler.dispatchMessage(Handler.java:95)聽
at android.os.Looper.loop(Looper.java:154)聽
at android.app.ActivityThread.main(ActivityThread.java:6816)聽
at java.lang.reflect.Method.invoke(Native Method)聽
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1563)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1451)
Please let me know of any solutions. Please don't advise to set minifyEnabled false.
Hi @24Lathiya ,
Please try adding -keepclassmembers enum * { *; } to your proguard rule to avoid this error.
@raphkim thanks a lot for reply. Your solution work like charm.
Most helpful comment
@raphkim thanks a lot for reply. Your solution work like charm.