Closed fleficher closed 6 years ago
Hey @fleficher Thank you for reaching out, we'll be investigating the issue, and get back to you as fast as we can 😊
Hey @fleficher, have you tried enabling MultiDex?
Hi @ramiimagdi yes i've tried this but nothing changed.
The sample app has the same problem if you migrate to androidx
Hey @fleficher, thank you for your reply, will get back to you as fast as possible on this.
Hello again @fleficher, can you please 8.0.8.7-SNAPSHOT
?
Hi @ramiimagdi same problem with this snapshot version. i'm using android studio 3.2.0 with latest plugin & build tools.
Here's the full stacktrace when building the sample project:
Initializing...
Note: the configuration refers to the unknown class 'rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef'
Note: the configuration refers to the unknown class 'rx.internal.util.atomic.LinkedQueueNode'
Note: the configuration refers to the unknown class 'rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef'
Note: the configuration refers to the unknown class 'rx.internal.util.atomic.LinkedQueueNode'
Note: the configuration refers to the unknown class 'com.instabug.library.R.menu'
Note: the configuration refers to the unknown class '.R'
Maybe you meant the fully qualified name 'androidx.appcompat.R'?
Maybe you meant the fully qualified name 'androidx.arch.core.R'?
Maybe you meant the fully qualified name 'androidx.asynclayoutinflater.R'?
Maybe you meant the fully qualified name 'androidx.cardview.R'?
Maybe you meant the fully qualified name 'androidx.coordinatorlayout.R'?
Maybe you meant the fully qualified name 'androidx.core.R'?
Maybe you meant the fully qualified name 'androidx.cursoradapter.R'?
Maybe you meant the fully qualified name 'androidx.customview.R'?
Maybe you meant the fully qualified name 'androidx.documentfile.R'?
Maybe you meant the fully qualified name 'androidx.drawerlayout.R'?
Maybe you meant the fully qualified name 'androidx.fragment.R'?
Maybe you meant the fully qualified name 'androidx.interpolator.R'?
Maybe you meant the fully qualified name 'androidx.legacy.coreui.R'?
Maybe you meant the fully qualified name 'androidx.legacy.coreutils.R'?
Maybe you meant the fully qualified name 'androidx.legacy.v4.R'?
Maybe you meant the fully qualified name 'androidx.lifecycle.R'?
Maybe you meant the fully qualified name 'androidx.lifecycle.livedata.core.R'?
Maybe you meant the fully qualified name 'androidx.lifecycle.viewmodel.R'?
Maybe you meant the fully qualified name 'androidx.loader.R'?
Maybe you meant the fully qualified name 'androidx.localbroadcastmanager.R'?
Maybe you meant the fully qualified name 'androidx.media.R'?
Maybe you meant the fully qualified name 'androidx.multidex.R'?
Maybe you meant the fully qualified name 'androidx.print.R'?
Maybe you meant the fully qualified name 'androidx.recyclerview.R'?
Maybe you meant the fully qualified name 'androidx.slidingpanelayout.R'?
Maybe you meant the fully qualified name 'androidx.swiperefreshlayout.R'?
Maybe you meant the fully qualified name 'androidx.transition.R'?
Maybe you meant the fully qualified name 'androidx.vectordrawable.R'?
Maybe you meant the fully qualified name 'androidx.versionedparcelable.R'?
Maybe you meant the fully qualified name 'androidx.viewpager.R'?
Maybe you meant the fully qualified name 'com.example.instabug.R'?
Maybe you meant the fully qualified name 'com.google.android.gms.ads_identifier.R'?
Maybe you meant the fully qualified name 'com.google.android.gms.base.R'?
Maybe you meant the fully qualified name 'com.google.android.gms.common.R'?
Maybe you meant the fully qualified name 'com.google.android.gms.measurement_base.R'?
Maybe you meant the fully qualified name 'com.google.android.gms.stats.R'?
Maybe you meant the fully qualified name 'com.google.android.gms.tasks.R'?
Maybe you meant the fully qualified name 'com.google.android.material.R'?
Maybe you meant the fully qualified name 'com.google.firebase.analytics.connector.R'?
Maybe you meant the fully qualified name 'com.google.firebase.analytics.connector.impl.R'?
Maybe you meant the fully qualified name 'com.google.firebase.firebase_common.R'?
Maybe you meant the fully qualified name 'com.google.firebase.firebase_core.R'?
Maybe you meant the fully qualified name 'com.google.firebase.iid.R'?
Maybe you meant the fully qualified name 'com.google.firebase.iid.internal.R'?
Maybe you meant the fully qualified name 'com.google.firebase.measurement.R'?
Maybe you meant the fully qualified name 'com.google.firebase.measurement_impl.R'?
Maybe you meant the fully qualified name 'com.google.firebase.messaging.R'?
Maybe you meant the fully qualified name 'com.instabug.all.R'?
Maybe you meant the fully qualified name 'com.instabug.bug.R'?
Maybe you meant the fully qualified name 'com.instabug.chat.R'?
Maybe you meant the fully qualified name 'com.instabug.crash.R'?
Maybe you meant the fully qualified name 'com.instabug.featuresrequest.R'?
Maybe you meant the fully qualified name 'com.instabug.library.R'?
Maybe you meant the fully qualified name 'com.instabug.survey.R'?
Maybe you meant the fully qualified name 'io.reactivex.android.R'?
Maybe you meant the fully qualified name 'petrov.kristiyan.colorpicker.R'?
Maybe you meant the fully qualified name 'android.R'?
Note: the configuration refers to the unknown class 'com.instabug.library.ui.onboarding.WelcomeMessageState'
Note: the configuration refers to the unknown class 'com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian'
Warning: com.instabug.featuresrequest.ui.d.b: can't find referenced method 'void addOnTabSelectedListener(com.google.android.material.tabs.TabLayout$OnTabSelectedListener)' in program class com.google.android.material.tabs.TabLayout
Note: com.google.android.gms.common.util.WorkSourceUtil: can't find dynamically referenced class android.os.WorkSource$WorkChain
Note: com.google.android.gms.internal.measurement.zzaaf: can't find dynamically referenced class com.google.protobuf.DescriptorMessageInfoFactory
Note: com.google.android.gms.internal.measurement.zzaak: can't find dynamically referenced class com.google.protobuf.MapFieldSchemaFull
Note: com.google.android.gms.internal.measurement.zzaau: can't find dynamically referenced class com.google.protobuf.NewInstanceSchemaFull
Note: com.google.android.gms.internal.measurement.zzaaz: can't find dynamically referenced class com.google.protobuf.GeneratedMessage
Note: com.google.android.gms.internal.measurement.zzaaz: can't find dynamically referenced class com.google.protobuf.UnknownFieldSetSchema
Note: com.google.android.gms.internal.measurement.zzeg: can't find dynamically referenced class android.os.SystemProperties
Note: com.google.android.gms.internal.measurement.zzhl: can't find dynamically referenced class com.google.android.gms.tagmanager.TagManagerService
Note: com.google.android.gms.internal.measurement.zzyx: can't find dynamically referenced class libcore.io.Memory
Note: com.google.android.gms.internal.measurement.zzyx: can't find dynamically referenced class org.robolectric.Robolectric
Note: com.google.android.gms.internal.measurement.zzzj: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.android.gms.internal.measurement.zzzk: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.google.android.gms.internal.measurement.zzzn: can't find dynamically referenced class com.google.protobuf.ExtensionSchemaFull
Note: the configuration refers to the unknown field 'com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian' in class 'com.google.android.gms.common.api.internal.BasePendingResult'
Note: the configuration keeps the entry point 'com.google.android.gms.common.api.internal.LifecycleCallback { com.google.android.gms.common.api.internal.LifecycleFragment getChimeraLifecycleFragmentImpl(com.google.android.gms.common.api.internal.LifecycleActivity); }', but not the descriptor class 'com.google.android.gms.common.api.internal.LifecycleActivity'
Note: the configuration keeps the entry point 'com.google.android.gms.common.images.internal.LoadingImageView { void setOnImageLoadedListener(com.google.android.gms.common.images.ImageManager$OnImageLoadedListener); }', but not the descriptor class 'com.google.android.gms.common.images.ImageManager$OnImageLoadedListener'
Note: the configuration keeps the entry point 'com.google.android.gms.common.images.internal.LoadingImageView { void setClipPathProvider(com.google.android.gms.common.images.internal.LoadingImageView$ClipPathProvider); }', but not the descriptor class 'com.google.android.gms.common.images.internal.LoadingImageView$ClipPathProvider'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.AppMeasurement { AppMeasurement(com.google.android.gms.internal.measurement.zzgm); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzgm'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.AppMeasurement { void setEventInterceptor(com.google.android.gms.measurement.AppMeasurement$EventInterceptor); }', but not the descriptor class 'com.google.android.gms.measurement.AppMeasurement$EventInterceptor'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.AppMeasurement { void registerOnMeasurementEventListener(com.google.android.gms.measurement.AppMeasurement$OnEventListener); }', but not the descriptor class 'com.google.android.gms.measurement.AppMeasurement$OnEventListener'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.AppMeasurement { void unregisterOnMeasurementEventListener(com.google.android.gms.measurement.AppMeasurement$OnEventListener); }', but not the descriptor class 'com.google.android.gms.measurement.AppMeasurement$OnEventListener'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationMenuView { void setPresenter(com.google.android.material.bottomnavigation.BottomNavigationPresenter); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationPresenter'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationView { void setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationView { void setOnNavigationItemReselectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemReselectedListener); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemReselectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setChipDrawable(com.google.android.material.chip.ChipDrawable); }', but not the descriptor class 'com.google.android.material.chip.ChipDrawable'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setTextAppearance(com.google.android.material.resources.TextAppearance); }', but not the descriptor class 'com.google.android.material.resources.TextAppearance'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setShowMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setHideMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.chip.ChipGroup { void setOnCheckedChangeListener(com.google.android.material.chip.ChipGroup$OnCheckedChangeListener); }', but not the descriptor class 'com.google.android.material.chip.ChipGroup$OnCheckedChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealFrameLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealGridLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealLinearLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealRelativeLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.cardview.CircularRevealCardView { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.coordinatorlayout.CircularRevealCoordinatorLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.floatingactionbutton.FloatingActionButton { void setShowMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.floatingactionbutton.FloatingActionButton { void setHideMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.navigation.NavigationView { void setNavigationItemSelectedListener(com.google.android.material.navigation.NavigationView$OnNavigationItemSelectedListener); }', but not the descriptor class 'com.google.android.material.navigation.NavigationView$OnNavigationItemSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout { void setOnLayoutChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnLayoutChangeListener); }', but not the descriptor class 'com.google.android.material.snackbar.BaseTransientBottomBar$OnLayoutChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout { void setOnAttachStateChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnAttachStateChangeListener); }', but not the descriptor class 'com.google.android.material.snackbar.BaseTransientBottomBar$OnAttachStateChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.stateful.ExtendableSavedState { ExtendableSavedState(android.os.Parcel,java.lang.ClassLoader,com.google.android.material.stateful.ExtendableSavedState$1); }', but not the descriptor class 'com.google.android.material.stateful.ExtendableSavedState$1'
Note: the configuration keeps the entry point 'com.google.android.material.tabs.TabLayout { void setOnTabSelectedListener(com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener); }', but not the descriptor class 'com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.textfield.TextInputLayout { void setTextInputAccessibilityDelegate(com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate); }', but not the descriptor class 'com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate'
Note: the configuration keeps the entry point 'com.google.firebase.analytics.FirebaseAnalytics { FirebaseAnalytics(com.google.android.gms.internal.measurement.zzgm); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzgm'
Note: the configuration keeps the entry point 'com.google.firebase.iid.FirebaseInstanceId { com.google.firebase.iid.FirebaseInstanceId getInstance(com.google.firebase.FirebaseApp); }', but not the descriptor class 'com.google.firebase.FirebaseApp'
Note: the configuration keeps the entry point 'com.instabug.bug.OnSdkDismissedCallback { void onSdkDismissed(com.instabug.bug.OnSdkDismissedCallback$DismissType,com.instabug.bug.model.b); }', but not the descriptor class 'com.instabug.bug.model.b'
Note: the configuration keeps the entry point 'com.instabug.bug.cache.BugsCacheManager { void addBug(com.instabug.bug.model.Bug); }', but not the descriptor class 'com.instabug.bug.model.Bug'
Note: the configuration keeps the entry point 'com.instabug.bug.cache.BugsCacheManager { void sendBug(com.instabug.bug.model.Bug); }', but not the descriptor class 'com.instabug.bug.model.Bug'
Note: the configuration keeps the entry point 'com.instabug.bug.model.ReportCategory { java.util.List getSubReportCategories(com.instabug.bug.model.b); }', but not the descriptor class 'com.instabug.bug.model.b'
Note: the configuration keeps the entry point 'com.instabug.bug.model.ReportCategory { java.util.List getRemoteSubReportCategories(com.instabug.bug.model.b); }', but not the descriptor class 'com.instabug.bug.model.b'
Note: the configuration keeps the entry point 'com.instabug.bug.model.ReportCategory { boolean hasSubCategories(com.instabug.bug.model.b); }', but not the descriptor class 'com.instabug.bug.model.b'
Note: the configuration keeps the entry point 'com.instabug.bug.screenshot.viewhierarchy.utilities.ViewHierarchyDiskUtils { void saveViewHierarchyImage(com.instabug.bug.screenshot.viewhierarchy.b); }', but not the descriptor class 'com.instabug.bug.screenshot.viewhierarchy.b'
Note: the configuration keeps the entry point 'com.instabug.bug.screenshot.viewhierarchy.utilities.ViewHierarchyDiskUtils { android.net.Uri zipViewHierarchyImages(com.instabug.bug.screenshot.viewhierarchy.b); }', but not the descriptor class 'com.instabug.bug.screenshot.viewhierarchy.b'
Note: the configuration keeps the entry point 'com.instabug.chat.cache.ChatsCacheManager { void updateLocalMessageWithSyncedMessage(android.content.Context,com.instabug.chat.model.Message); }', but not the descriptor class 'com.instabug.chat.model.Message'
Note: the configuration keeps the entry point 'com.instabug.chat.cache.ReadQueueCacheManager { void add(com.instabug.chat.model.d); }', but not the descriptor class 'com.instabug.chat.model.d'
Note: the configuration keeps the entry point 'com.instabug.crash.cache.CrashesCacheManager { void addCrash(com.instabug.crash.models.Crash); }', but not the descriptor class 'com.instabug.crash.models.Crash'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.cache.FeatureRequestCacheManager { void addFeature(com.instabug.featuresrequest.models.FeatureRequest); }', but not the descriptor class 'com.instabug.featuresrequest.models.FeatureRequest'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.cache.NewFeatureRequestsCacheManager { void addNewFeatureRequest(com.instabug.featuresrequest.models.FeatureRequest); }', but not the descriptor class 'com.instabug.featuresrequest.models.FeatureRequest'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.cache.NewFeatureRequestsCacheManager { com.instabug.featuresrequest.models.FeatureRequest deleteNewFeatureRequest(com.instabug.featuresrequest.models.FeatureRequest); }', but not the descriptor class 'com.instabug.featuresrequest.models.FeatureRequest'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.cache.TimelineCacheManager { void addTimeline(com.instabug.featuresrequest.models.e); }', but not the descriptor class 'com.instabug.featuresrequest.models.e'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.ui.custom.IbFrRippleView { void setRippleType(com.instabug.featuresrequest.ui.custom.IbFrRippleView$b); }', but not the descriptor class 'com.instabug.featuresrequest.ui.custom.IbFrRippleView$b'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.ui.custom.IbFrRippleView { void setOnRippleCompleteListener(com.instabug.featuresrequest.ui.custom.IbFrRippleView$a); }', but not the descriptor class 'com.instabug.featuresrequest.ui.custom.IbFrRippleView$a'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.ui.custom.SnackbarLayout { void setOnLayoutChangeListener(com.instabug.featuresrequest.ui.custom.SnackbarLayout$b); }', but not the descriptor class 'com.instabug.featuresrequest.ui.custom.SnackbarLayout$b'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.ui.custom.SnackbarLayout { void setOnAttachStateChangeListener(com.instabug.featuresrequest.ui.custom.SnackbarLayout$a); }', but not the descriptor class 'com.instabug.featuresrequest.ui.custom.SnackbarLayout$a'
Note: the configuration keeps the entry point 'com.instabug.library.Instabug { Instabug(com.instabug.library.a); }', but not the descriptor class 'com.instabug.library.a'
Note: the configuration keeps the entry point 'com.instabug.library.Instabug { Instabug(com.instabug.library.a,com.instabug.library.Instabug$1); }', but not the descriptor class 'com.instabug.library.a'
Note: the configuration keeps the entry point 'com.instabug.library.Instabug { Instabug(com.instabug.library.a,com.instabug.library.Instabug$1); }', but not the descriptor class 'com.instabug.library.Instabug$1'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.AnnotationView { void setDrawingMode(com.instabug.library.annotation.AnnotationView$b); }', but not the descriptor class 'com.instabug.library.annotation.AnnotationView$b'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.AnnotationView { void setOnActionDownListener(com.instabug.library.annotation.AnnotationView$e); }', but not the descriptor class 'com.instabug.library.annotation.AnnotationView$e'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.AnnotationView { void setOnNewMagnifierAddingAِِِbilityChangedListener(com.instabug.library.annotation.AnnotationView$f); }', but not the descriptor class 'com.instabug.library.annotation.AnnotationView$f'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.AnnotationView { void setOnPathRecognizedListener(com.instabug.library.annotation.AnnotationView$g); }', but not the descriptor class 'com.instabug.library.annotation.AnnotationView$g'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.ColorPickerPopUpView { void setOrientation(com.instabug.library.annotation.ColorPickerPopUpView$c); }', but not the descriptor class 'com.instabug.library.annotation.ColorPickerPopUpView$c'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.ColorPickerPopUpView { void setOnColorSelectionListener(com.instabug.library.annotation.ColorPickerPopUpView$b); }', but not the descriptor class 'com.instabug.library.annotation.ColorPickerPopUpView$b'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.ShapeSuggestionsLayout { void setOnShapeSelectedListener(com.instabug.library.annotation.ShapeSuggestionsLayout$a); }', but not the descriptor class 'com.instabug.library.annotation.ShapeSuggestionsLayout$a'
Note: the configuration keeps the entry point 'com.instabug.library.broadcast.LastContactedChangedBroadcast { LastContactedChangedBroadcast(com.instabug.library.broadcast.LastContactedChangedBroadcast$a); }', but not the descriptor class 'com.instabug.library.broadcast.LastContactedChangedBroadcast$a'
Note: the configuration keeps the entry point 'com.instabug.library.core.eventbus.EventBus { EventBus(io.reactivex.subjects.PublishSubject); }', but not the descriptor class 'io.reactivex.subjects.PublishSubject'
Note: the configuration keeps the entry point 'com.instabug.library.core.eventbus.EventBus { io.reactivex.disposables.Disposable subscribe(io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.library.core.eventbus.coreeventbus.SDKCoreEventSubscriber { io.reactivex.disposables.Disposable subscribe(io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void prepare(com.instabug.library.internal.media.AudioPlayer$a); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void stream(java.lang.String,com.instabug.library.internal.media.AudioPlayer$a); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void getDurationAsync(java.lang.String,com.instabug.library.internal.media.AudioPlayer$b); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$b'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void doAction(com.instabug.library.internal.media.AudioPlayer$a); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void access$000(com.instabug.library.internal.media.AudioPlayer,com.instabug.library.internal.media.AudioPlayer$a); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.AttachmentManager { void saveBitmap(android.graphics.Bitmap,android.content.Context,com.instabug.library.internal.storage.AttachmentManager$a); }', but not the descriptor class 'com.instabug.library.internal.storage.AttachmentManager$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.AttachmentManager { void saveBitmap(android.graphics.Bitmap,java.io.File,com.instabug.library.internal.storage.AttachmentManager$a); }', but not the descriptor class 'com.instabug.library.internal.storage.AttachmentManager$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.cache.CacheManager { com.instabug.library.internal.storage.cache.Cache addCache(com.instabug.library.internal.storage.cache.Cache); }', but not the descriptor class 'com.instabug.library.internal.storage.cache.Cache'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.cache.CacheManager { void migrateCache(com.instabug.library.internal.storage.cache.Cache,com.instabug.library.internal.storage.cache.Cache,com.instabug.library.internal.storage.cache.CacheManager$KeyExtractor); }', but not the descriptor class 'com.instabug.library.internal.storage.cache.Cache'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.cache.CacheManager { void migrateCache(com.instabug.library.internal.storage.cache.Cache,com.instabug.library.internal.storage.cache.Cache,com.instabug.library.internal.storage.cache.CacheManager$KeyExtractor); }', but not the descriptor class 'com.instabug.library.internal.storage.cache.Cache'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.cache.SessionsCacheManager { void addSession(com.instabug.library.model.Session); }', but not the descriptor class 'com.instabug.library.model.Session'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.cache.SessionsCacheManager { com.instabug.library.model.Session deleteSession(com.instabug.library.model.Session); }', but not the descriptor class 'com.instabug.library.model.Session'
Note: the configuration keeps the entry point 'com.instabug.library.logging.InstabugLog { void addLog(com.instabug.library.logging.InstabugLog$b); }', but not the descriptor class 'com.instabug.library.logging.InstabugLog$b'
Note: the configuration keeps the entry point 'com.instabug.library.model.State { com.instabug.library.model.State setSessionProfilerTimeline(com.instabug.library.sessionprofiler.model.timeline.c); }', but not the descriptor class 'com.instabug.library.sessionprofiler.model.timeline.c'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { io.reactivex.Observable doRequest(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { com.instabug.library.network.Request buildRequest(android.content.Context,com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection buildConnection(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection connectWithNormalType(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection connectWithFileDownloadType(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection connectWithMultiPartType(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { com.instabug.library.network.RequestResponse handleFileDownloadRequestResponse(com.instabug.library.network.Request,java.net.HttpURLConnection); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection access$100(com.instabug.library.network.NetworkManager,com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection access$200(com.instabug.library.network.NetworkManager,com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection access$300(com.instabug.library.network.NetworkManager,com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { com.instabug.library.network.RequestResponse access$600(com.instabug.library.network.NetworkManager,com.instabug.library.network.Request,java.net.HttpURLConnection); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager$OnDoRequestListener { void onRequestStarted(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.survey.ui.custom.NpsView { void setOnSelectionListener(com.instabug.survey.ui.custom.NpsView$a); }', but not the descriptor class 'com.instabug.survey.ui.custom.NpsView$a'
Note: the configuration keeps the entry point 'com.instabug.survey.ui.custom.RatingView { void setGravity(com.instabug.survey.ui.custom.RatingView$a); }', but not the descriptor class 'com.instabug.survey.ui.custom.RatingView$a'
Note: the configuration keeps the entry point 'com.instabug.survey.ui.custom.RatingView { void setOnRatingBarChangeListener(com.instabug.survey.ui.custom.RatingView$b); }', but not the descriptor class 'com.instabug.survey.ui.custom.RatingView$b'
Note: the configuration keeps the entry point 'org.jcodec.audio.FilterGraph { FilterGraph(org.jcodec.audio.FilterSocket[],org.jcodec.audio.FilterGraph$1); }', but not the descriptor class 'org.jcodec.audio.FilterGraph$1'
Note: the configuration keeps the entry point 'org.jcodec.codecs.aac.blocks.BlockCCE { BlockCCE(org.jcodec.codecs.aac.blocks.BlockICS$BandType[]); }', but not the descriptor class 'org.jcodec.codecs.aac.blocks.BlockICS$BandType'
Note: the configuration keeps the entry point 'org.jcodec.codecs.mpeg12.MPEGConst$MBType { MPEGConst$MBType(int,int,int,int,int,int,int,org.jcodec.codecs.mpeg12.MPEGConst$1); }', but not the descriptor class 'org.jcodec.codecs.mpeg12.MPEGConst$1'
Note: there were 8 references to unknown classes.
You should check your configuration for typos.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Note: there were 1 references to unknown class members.
You should check your configuration for typos.
Note: there were 96 unkept descriptor classes in kept class members.
You should consider explicitly keeping the mentioned classes
(using '-keep').
(http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Note: there were 13 unresolved dynamic references to classes or interfaces.
You should check if you need to specify additional program jars.
(http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Warning: there were 1 unresolved references to program class members.
Your input classes appear to be inconsistent.
You may need to recompile the code.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember)
Warning: Exception while processing task java.io.IOException: Please correct the above warnings first.
Thread(Tasks limiter_1): destruction
:app:transformClassesAndResourcesWithProguardForDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformClassesAndResourcesWithProguardForDebug'.
> Job failed, see logs for details
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 11s
I guess that the error is
Warning: com.instabug.featuresrequest.ui.d.b: can't find referenced method 'void addOnTabSelectedListener(com.google.android.material.tabs.TabLayout$OnTabSelectedListener)' in program class com.google.android.material.tabs.TabLayout
Increasing the compileSdkVersion to 28 and updating the Support Libraries to 28+ of the SDK should resolve the issue
Hi, I've added the following line in my proguard file :
-dontwarn com.instabug.**
And it works without crashing for the moment, I don't need Instabug on production ATM so that's good for me
Hey @fleficher, after digging deeper, we have found that this should not happen as Google is supporting backward compatibility with Android X, however, we are still investigating why this is happening and will update you soon.
I'm experiencing the same issue, and our project is not updated to use Android X. (I'm using v 8.0.8)
Same here, from 8.0.8 to 8.0.10.1-SNAPSHOT
Warning: com.instabug.bug.network.b: can't find referenced class com.instabug.library.network.NetworkManager$OnDoRequestListener Warning: com.instabug.chat.network.a.a: can't find referenced class com.instabug.library.network.NetworkManager$OnDoRequestListener Warning: com.instabug.crash.a.a: can't find referenced class com.instabug.library.internal.storage.cache.db.InstabugDbContract Warning: com.instabug.crash.a.a: can't find referenced class com.instabug.library.internal.storage.cache.db.InstabugDbContract$CrashEntry Warning: com.instabug.crash.network.InstabugCrashesUploaderService: can't find referenced class com.instabug.library.internal.storage.cache.db.InstabugDbContract Warning: com.instabug.crash.network.InstabugCrashesUploaderService: can't find referenced class com.instabug.library.internal.storage.cache.db.InstabugDbContract$CrashEntry Warning: com.instabug.crash.network.InstabugCrashesUploaderService$1: can't find referenced class com.instabug.library.internal.storage.cache.db.InstabugDbContract Warning: com.instabug.crash.network.InstabugCrashesUploaderService$1: can't find referenced class com.instabug.library.internal.storage.cache.db.InstabugDbContract$CrashEntry Warning: com.instabug.crash.network.InstabugCrashesUploaderService$2: can't find referenced class com.instabug.library.internal.storage.cache.db.InstabugDbContract Warning: com.instabug.crash.network.InstabugCrashesUploaderService$2: can't find referenced class com.instabug.library.internal.storage.cache.db.InstabugDbContract$CrashEntry Warning: com.instabug.survey.network.service.a: can't find referenced class com.instabug.library.network.NetworkManager$OnDoRequestListener
This is what I get by running assembleRelease
from the sample app with the library version 8.0.9
. I guess the issue is about proguard config of the library only, not related to AndroidX or API 28.
If I change the library version to 8.0.7
then the build can pass.
@fleficher @ablenesi @micHar @thuutin Thanks all for sharing your feedback here!
That was an issue with proguard, and it seems that there is an internal issue in proguard which was showing wrong class paths while using AndroidX. Added to that, there was a new issue introduced by us in the latest release (that was done 3 days ago) which changed the proguard wrong msgs with the right one, and we were able to debug and solve it.
The good news is that this snapshot 8.0.10.2-SNAPSHOT
includes the fix, and we are releasing a hotfix also.
I'm having the same issue but 8.0.10.2-SNAPSHOT
does not resolve for me. Can you also give a proguard rules recommendation?
I saw that 8.0.11
was just released, and it drags support library 28.0.0
with itself (which is still in alpha). Is the bleeding edge of google libs really a requirement for a feedback tool to work?
@ddinchev Thank you for getting back to us.
You actually won't need to add any rules to Proguard. However, can you please update us with the following:
And actually, the library 28.0.0
is not an alpha, it is prouction ready since September 21, 2018. Also, we use Google Support libraries because we have many UI in the SDK that use APIs from Google Support libraries.
I hope this answers your questions.
Hey @fleficher @ablenesi @micHar @thuutin @ddinchev, I hope you all are doing great!
I was wondering if you had the chance to try our 8.0.10.2-SNAPSHOT
. Please let us know if you are still facing any further issues.
Thank you.
@ramiimagdi Just tested 8.0.10.2-SNAPSHOT
and it is working great. Also migrating to support lib 28.0.0 is nice :)
Hi @ramiimagdi, 8.0.10.2-SNAPSHOT
seems to fix the issue for me too.
Hey all, please feel free to reopen this thread again if you need further assistance on this issue, we'd love to help you out!
Thank you 😊
@ramiimagdi any fix for that?
Hi all, I am seeing a similar issue with Instabug 8.0.14 using Android Studio 3.3 in a project with Androidx dependencies setup. See my test project here: https://github.com/ZOlbrys/InstabugProguardExample
Before adding Instabug dependency the release build worked fine. Should I open a new issue for this, I see the original bug is closed.
Here's my output when I try to run assembleRelease
Zachs-MBP:InstabugProguardExample Zach$ ./gradlew assembleRelease
ProGuard, version 6.0.3
Reading input...
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/instabug-8.0.14.aar/7178e06d3a630721e4942b64ce343e33/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/jetified-instabug-survey-8.0.14.aar/9044cd21b6357dccedbb61e04a436154/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/jetified-instabug-crash-8.0.14.aar/63aa8df4d29a592d08d042b96609c09c/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/jetified-instabug-bug-8.0.14.aar/d20f233e7bcfb3350a357d11b87ecae2/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/jetified-instabug-chat-8.0.14.aar/a15a50336d485da87ca83c2c8af637a0/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/jetified-instabug-features-request-8.0.14.aar/df42bebdd513582f292d4bf4020acb14/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/jetified-instabug-core-8.0.14.aar/b55d096cefc7b1bd4e8be1227ddf3876/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/material-1.0.0.aar/5e960da0b5e20416ed6b0d44c2544c67/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/appcompat-1.1.0-alpha01.aar/3a2f33bc46f2de4e4ffafc10f63415c1/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/constraintlayout-1.1.3.aar/29f18d8546b58fffb37c42143db71bb4/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/legacy-support-v4-1.0.0.aar/345b26f9fde38b449f071cb26ee7e815/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/fragment-1.1.0-alpha02.aar/9977e3aef0624aca4fb6da5024ef75d1/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/vectordrawable-animated-1.0.0.aar/b3766ffd9d8c4cb9f7aa41ba510d286b/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/vectordrawable-1.0.1.aar/519b841125ee2345277c28569537098e/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/recyclerview-1.0.0.aar/a5dab170357e520f7bc8c5ca62f038d8/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/legacy-support-core-ui-1.0.0.aar/701ea4605a663c6c5ffef36fad1553bb/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/drawerlayout-1.0.0.aar/ed0661335e9b769bc4ebea1a8a38f0cd/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/viewpager-1.0.0.aar/a204e2c936feb1b699b8f6121ec22461/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/legacy-support-core-utils-1.0.0.aar/7b120f76aeded836a7b3792d8c0130d0/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/loader-1.0.0.aar/7a4562c0055413ab4c8494c709fefd71/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/activity-1.0.0-alpha02.aar/b45f1f8ceec23c1a1ec5ffb6e0fce358/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/coordinatorlayout-1.0.0.aar/3935222ac474c663eab4890f9091e52a/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/slidingpanelayout-1.0.0.aar/1d647782e9bc2a40978f15c7158b9867/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/customview-1.0.0.aar/d5f15e28da3b8b5ec69b42b68271ea5e/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/swiperefreshlayout-1.0.0.aar/15921782ea2dfbb7e554f63510d55b9e/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/asynclayoutinflater-1.0.0.aar/eefce6d4358900545fda34f8e2749dfc/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/media-1.0.0.aar/47792f7c5352ae1ef17c7607a146f5c6/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/transition-1.0.0.aar/9a400ca3ca92a78c30802d4e829cc376/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/core-1.1.0-alpha01.aar/1ebe580b4cbd669e0eeb3ac5d3046dd9/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/versionedparcelable-1.1.0-alpha01.aar/9f1e9b9c97a435798907064f09ef9dbf/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0-alpha01/b0dc394c09edd6fe0539bd2587e7d24ee954fdcf/collection-1.1.0-alpha01.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/cursoradapter-1.0.0.aar/d1d90c65356e34197cbe7d6b0d01791e/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/lifecycle-viewmodel-2.0.0.aar/77225c9eebb96532e82eef14b1ae93c0/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/interpolator-1.0.0.aar/46a9060e372924510f809b26505341e9/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/lifecycle-livedata-2.0.0.aar/a31b2c0c50729739fc3f50a85fcb6e82/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/lifecycle-livedata-core-2.0.0.aar/ac0cf018295da79ec8b6057ae2193e04/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/core-runtime-2.0.0.aar/7420b48373520f24b1e8cc2cb14de8c6/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/lifecycle-runtime-2.0.0.aar/5ff52d113e240af7d64f64d02d157339/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.0.0/bb21b9a11761451b51624ac428d1f1bb5deeac38/core-common-2.0.0.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/documentfile-1.0.0.aar/526ece779b76b66b02586b2833d08975/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/localbroadcastmanager-1.0.0.aar/0e0b94442a0bf6c7e817f0d7e043dbeb/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/print-1.0.0.aar/9bb0211ae1bbcb1b81fdea1ac77105f8/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/cardview-1.0.0.aar/a8f3579bea8d3f58ceb39b1833fd261e/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common/2.0.0/e070ffae07452331bc5684734fce6831d531785c/lifecycle-common-2.0.0.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.0.0/45599f2cd5965ac05a1488fa2a5c0cdd7c499ead/annotation-1.0.0.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/modules-2/files-2.1/androidx.constraintlayout/constraintlayout-solver/1.1.3/54abe9ffb22cc9019b0b6fcc10f185cc4e67b34e/constraintlayout-solver-1.1.3.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/rxandroid-2.0.2.aar/3094f0b8db9b87ba128b5c02a20dd4ca/jars/classes.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/modules-2/files-2.1/io.reactivex.rxjava2/rxjava/2.1.13/193f20aa559aaa5b9eb1154a9e2ee7dbde476213/rxjava-2.1.13.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/transforms-1/files-1.1/mimecraft-1.1.1.jar/4e14c7bf92d24bb27d7a7a5d50d201d9/jetified-mimecraft-1.1.1.jar] (filtered)
Reading program jar [/Users/zach/.gradle/caches/modules-2/files-2.1/org.reactivestreams/reactive-streams/1.0.2/323964c36556eb0e6209f65c1cef72b53b461ab8/reactive-streams-1.0.2.jar] (filtered)
Reading program directory [/Users/zach/Developer/Code/InstabugProguardExample/app/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes] (filtered)
Reading program jar [/Users/zach/Developer/Code/InstabugProguardExample/app/build/intermediates/transforms/mergeJavaRes/release/0.jar] (filtered)
Reading library jar [/Users/zach/Library/Android/sdk/platforms/android-28/android.jar]
Reading library jar [/Users/zach/Library/Android/sdk/build-tools/28.0.3/core-lambda-stubs.jar]
Reading library jar [/Users/zach/Library/Android/sdk/platforms/android-28/optional/org.apache.http.legacy.jar]
Reading library jar [/Users/zach/Library/Android/sdk/platforms/android-28/optional/android.test.mock.jar]
Reading library jar [/Users/zach/Library/Android/sdk/platforms/android-28/optional/android.test.base.jar]
Reading library jar [/Users/zach/Library/Android/sdk/platforms/android-28/optional/android.test.runner.jar]
Initializing...
Note: the configuration refers to the unknown class 'rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef'
Note: the configuration refers to the unknown class 'rx.internal.util.atomic.LinkedQueueNode'
Note: the configuration refers to the unknown class 'rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef'
Note: the configuration refers to the unknown class 'rx.internal.util.atomic.LinkedQueueNode'
Note: the configuration refers to the unknown class 'com.instabug.library.R.menu'
Note: the configuration refers to the unknown class '.R'
Maybe you meant the fully qualified name 'androidx.activity.R'?
Maybe you meant the fully qualified name 'androidx.appcompat.R'?
Maybe you meant the fully qualified name 'androidx.arch.core.R'?
Maybe you meant the fully qualified name 'androidx.asynclayoutinflater.R'?
Maybe you meant the fully qualified name 'androidx.cardview.R'?
Maybe you meant the fully qualified name 'androidx.constraintlayout.widget.R'?
Maybe you meant the fully qualified name 'androidx.coordinatorlayout.R'?
Maybe you meant the fully qualified name 'androidx.core.R'?
Maybe you meant the fully qualified name 'androidx.cursoradapter.R'?
Maybe you meant the fully qualified name 'androidx.customview.R'?
Maybe you meant the fully qualified name 'androidx.documentfile.R'?
Maybe you meant the fully qualified name 'androidx.drawerlayout.R'?
Maybe you meant the fully qualified name 'androidx.fragment.R'?
Maybe you meant the fully qualified name 'androidx.interpolator.R'?
Maybe you meant the fully qualified name 'androidx.legacy.coreui.R'?
Maybe you meant the fully qualified name 'androidx.legacy.coreutils.R'?
Maybe you meant the fully qualified name 'androidx.legacy.v4.R'?
Maybe you meant the fully qualified name 'androidx.lifecycle.R'?
Maybe you meant the fully qualified name 'androidx.lifecycle.livedata.R'?
Maybe you meant the fully qualified name 'androidx.lifecycle.livedata.core.R'?
Maybe you meant the fully qualified name 'androidx.lifecycle.viewmodel.R'?
Maybe you meant the fully qualified name 'androidx.loader.R'?
Maybe you meant the fully qualified name 'androidx.localbroadcastmanager.R'?
Maybe you meant the fully qualified name 'androidx.media.R'?
Maybe you meant the fully qualified name 'androidx.print.R'?
Maybe you meant the fully qualified name 'androidx.recyclerview.R'?
Maybe you meant the fully qualified name 'androidx.slidingpanelayout.R'?
Maybe you meant the fully qualified name 'androidx.swiperefreshlayout.R'?
Maybe you meant the fully qualified name 'androidx.transition.R'?
Maybe you meant the fully qualified name 'androidx.vectordrawable.R'?
Maybe you meant the fully qualified name 'androidx.versionedparcelable.R'?
Maybe you meant the fully qualified name 'androidx.viewpager.R'?
Maybe you meant the fully qualified name 'com.example.instabugproguardexample.R'?
Maybe you meant the fully qualified name 'com.google.android.material.R'?
Maybe you meant the fully qualified name 'com.instabug.all.R'?
Maybe you meant the fully qualified name 'com.instabug.bug.R'?
Maybe you meant the fully qualified name 'com.instabug.chat.R'?
Maybe you meant the fully qualified name 'com.instabug.crash.R'?
Maybe you meant the fully qualified name 'com.instabug.featuresrequest.R'?
Maybe you meant the fully qualified name 'com.instabug.library.R'?
Maybe you meant the fully qualified name 'com.instabug.survey.R'?
Maybe you meant the fully qualified name 'io.reactivex.android.R'?
Maybe you meant the fully qualified name 'android.R'?
Note: the configuration refers to the unknown class 'com.instabug.library.ui.onboarding.WelcomeMessageState'
Note: the configuration refers to the unknown class 'com.instabug.library.internal.video.ScreenRecordingService.Action'
Maybe you meant the fully qualified name 'io.reactivex.functions.Action'?
Note: the configuration refers to the unknown class 'com.instabug.library.internal.video.ScreenRecordingService.Action'
Maybe you meant the fully qualified name 'io.reactivex.functions.Action'?
Warning: com.instabug.library.util.FileUtils: can't find referenced class javax.annotation.Nonnull
> Task :app:transformClassesAndResourcesWithProguardForRelease
Request to incrementing alive workforce from 0. Current workforce (dead or alive) 0
thread-pool size=4
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationMenuView { void setPresenter(com.google.android.material.bottomnavigation.BottomNavigationPresenter); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationPresenter'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationView { void setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationView { void setOnNavigationItemReselectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemReselectedListener); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemReselectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setChipDrawable(com.google.android.material.chip.ChipDrawable); }', but not the descriptor class 'com.google.android.material.chip.ChipDrawable'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setTextAppearance(com.google.android.material.resources.TextAppearance); }', but not the descriptor class 'com.google.android.material.resources.TextAppearance'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setShowMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setHideMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.chip.ChipGroup { void setOnCheckedChangeListener(com.google.android.material.chip.ChipGroup$OnCheckedChangeListener); }', but not the descriptor class 'com.google.android.material.chip.ChipGroup$OnCheckedChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealFrameLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealGridLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealLinearLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealRelativeLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.cardview.CircularRevealCardView { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.coordinatorlayout.CircularRevealCoordinatorLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.floatingactionbutton.FloatingActionButton { void setShowMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.floatingactionbutton.FloatingActionButton { void setHideMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.navigation.NavigationView { void setNavigationItemSelectedListener(com.google.android.material.navigation.NavigationView$OnNavigationItemSelectedListener); }', but not the descriptor class 'com.google.android.material.navigation.NavigationView$OnNavigationItemSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout { void setOnLayoutChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnLayoutChangeListener); }', but not the descriptor class 'com.google.android.material.snackbar.BaseTransientBottomBar$OnLayoutChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout { void setOnAttachStateChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnAttachStateChangeListener); }', but not the descriptor class 'com.google.android.material.snackbar.BaseTransientBottomBar$OnAttachStateChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.stateful.ExtendableSavedState { ExtendableSavedState(android.os.Parcel,java.lang.ClassLoader,com.google.android.material.stateful.ExtendableSavedState$1); }', but not the descriptor class 'com.google.android.material.stateful.ExtendableSavedState$1'
Note: the configuration keeps the entry point 'com.google.android.material.tabs.TabLayout { void setOnTabSelectedListener(com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener); }', but not the descriptor class 'com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.textfield.TextInputLayout { void setTextInputAccessibilityDelegate(com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate); }', but not the descriptor class 'com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate'
Note: the configuration keeps the entry point 'com.instabug.bug.OnSdkDismissedCallback { void onSdkDismissed(com.instabug.bug.OnSdkDismissedCallback$DismissType,com.instabug.bug.model.b); }', but not the descriptor class 'com.instabug.bug.model.b'
Note: the configuration keeps the entry point 'com.instabug.bug.model.ReportCategory { java.util.List getSubReportCategories(com.instabug.bug.model.b); }', but not the descriptor class 'com.instabug.bug.model.b'
Note: the configuration keeps the entry point 'com.instabug.bug.model.ReportCategory { java.util.List getRemoteSubReportCategories(com.instabug.bug.model.b); }', but not the descriptor class 'com.instabug.bug.model.b'
Note: the configuration keeps the entry point 'com.instabug.bug.model.ReportCategory { boolean hasSubCategories(com.instabug.bug.model.b); }', but not the descriptor class 'com.instabug.bug.model.b'
Note: the configuration keeps the entry point 'com.instabug.bug.screenshot.viewhierarchy.utilities.ViewHierarchyDiskUtils { void saveViewHierarchyImage(com.instabug.bug.screenshot.viewhierarchy.b); }', but not the descriptor class 'com.instabug.bug.screenshot.viewhierarchy.b'
Note: the configuration keeps the entry point 'com.instabug.bug.screenshot.viewhierarchy.utilities.ViewHierarchyDiskUtils { android.net.Uri zipViewHierarchyImages(com.instabug.bug.screenshot.viewhierarchy.b); }', but not the descriptor class 'com.instabug.bug.screenshot.viewhierarchy.b'
Note: the configuration keeps the entry point 'com.instabug.chat.cache.ChatsCacheManager { void updateLocalMessageWithSyncedMessage(android.content.Context,com.instabug.chat.model.Message); }', but not the descriptor class 'com.instabug.chat.model.Message'
Note: the configuration keeps the entry point 'com.instabug.chat.cache.ReadQueueCacheManager { void add(com.instabug.chat.model.d); }', but not the descriptor class 'com.instabug.chat.model.d'
Note: the configuration keeps the entry point 'com.instabug.chat.synchronization.SynchronizationManager { void syncMessages(android.content.Context,io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.chat.synchronization.SynchronizationManager { void handleSuccessResponse(com.instabug.library.network.RequestResponse,android.content.Context,io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.chat.synchronization.SynchronizationManager { void handleFailureResponse(io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.chat.synchronization.SynchronizationManager { void handleTTL(long,io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.chat.synchronization.SynchronizationManager { void access$300(com.instabug.chat.synchronization.SynchronizationManager,com.instabug.library.network.RequestResponse,android.content.Context,io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.chat.synchronization.SynchronizationManager { void access$500(com.instabug.chat.synchronization.SynchronizationManager,io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.chat.synchronization.SynchronizationManager { void access$700(com.instabug.chat.synchronization.SynchronizationManager,android.content.Context,io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.crash.CrashReporting { void createStateTextFile(android.content.Context,com.instabug.crash.models.Crash,java.io.File); }', but not the descriptor class 'com.instabug.crash.models.Crash'
Note: the configuration keeps the entry point 'com.instabug.crash.CrashReporting { void stopAutoScreenRecordingAndAttach(com.instabug.crash.models.Crash); }', but not the descriptor class 'com.instabug.crash.models.Crash'
Note: the configuration keeps the entry point 'com.instabug.crash.CrashReporting { void addCrashAttachments(android.content.Context,com.instabug.crash.models.Crash); }', but not the descriptor class 'com.instabug.crash.models.Crash'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.cache.FeatureRequestCacheManager { void addFeature(com.instabug.featuresrequest.models.FeatureRequest); }', but not the descriptor class 'com.instabug.featuresrequest.models.FeatureRequest'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.cache.NewFeatureRequestsCacheManager { void addNewFeatureRequest(com.instabug.featuresrequest.models.FeatureRequest); }', but not the descriptor class 'com.instabug.featuresrequest.models.FeatureRequest'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.cache.NewFeatureRequestsCacheManager { com.instabug.featuresrequest.models.FeatureRequest deleteNewFeatureRequest(com.instabug.featuresrequest.models.FeatureRequest); }', but not the descriptor class 'com.instabug.featuresrequest.models.FeatureRequest'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.cache.TimelineCacheManager { void addTimeline(com.instabug.featuresrequest.models.e); }', but not the descriptor class 'com.instabug.featuresrequest.models.e'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.ui.custom.IbFrRippleView { void setRippleType(com.instabug.featuresrequest.ui.custom.IbFrRippleView$b); }', but not the descriptor class 'com.instabug.featuresrequest.ui.custom.IbFrRippleView$b'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.ui.custom.IbFrRippleView { void setOnRippleCompleteListener(com.instabug.featuresrequest.ui.custom.IbFrRippleView$a); }', but not the descriptor class 'com.instabug.featuresrequest.ui.custom.IbFrRippleView$a'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.ui.custom.SnackbarLayout { void setOnLayoutChangeListener(com.instabug.featuresrequest.ui.custom.SnackbarLayout$b); }', but not the descriptor class 'com.instabug.featuresrequest.ui.custom.SnackbarLayout$b'
Note: the configuration keeps the entry point 'com.instabug.featuresrequest.ui.custom.SnackbarLayout { void setOnAttachStateChangeListener(com.instabug.featuresrequest.ui.custom.SnackbarLayout$a); }', but not the descriptor class 'com.instabug.featuresrequest.ui.custom.SnackbarLayout$a'
Note: the configuration keeps the entry point 'com.instabug.library.Instabug { Instabug(com.instabug.library.a); }', but not the descriptor class 'com.instabug.library.a'
Note: the configuration keeps the entry point 'com.instabug.library.Instabug { Instabug(com.instabug.library.a,com.instabug.library.Instabug$1); }', but not the descriptor class 'com.instabug.library.a'
Note: the configuration keeps the entry point 'com.instabug.library.Instabug { Instabug(com.instabug.library.a,com.instabug.library.Instabug$1); }', but not the descriptor class 'com.instabug.library.Instabug$1'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.AnnotationView { void setDrawingMode(com.instabug.library.annotation.AnnotationView$b); }', but not the descriptor class 'com.instabug.library.annotation.AnnotationView$b'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.AnnotationView { void setOnActionDownListener(com.instabug.library.annotation.AnnotationView$e); }', but not the descriptor class 'com.instabug.library.annotation.AnnotationView$e'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.AnnotationView { void setOnNewMagnifierAddingAِِِbilityChangedListener(com.instabug.library.annotation.AnnotationView$f); }', but not the descriptor class 'com.instabug.library.annotation.AnnotationView$f'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.AnnotationView { void setOnPathRecognizedListener(com.instabug.library.annotation.AnnotationView$g); }', but not the descriptor class 'com.instabug.library.annotation.AnnotationView$g'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.ColorPickerPopUpView { void setOrientation(com.instabug.library.annotation.ColorPickerPopUpView$c); }', but not the descriptor class 'com.instabug.library.annotation.ColorPickerPopUpView$c'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.ColorPickerPopUpView { void setOnColorSelectionListener(com.instabug.library.annotation.ColorPickerPopUpView$b); }', but not the descriptor class 'com.instabug.library.annotation.ColorPickerPopUpView$b'
Note: the configuration keeps the entry point 'com.instabug.library.annotation.ShapeSuggestionsLayout { void setOnShapeSelectedListener(com.instabug.library.annotation.ShapeSuggestionsLayout$a); }', but not the descriptor class 'com.instabug.library.annotation.ShapeSuggestionsLayout$a'
Note: the configuration keeps the entry point 'com.instabug.library.broadcast.LastContactedChangedBroadcast { LastContactedChangedBroadcast(com.instabug.library.broadcast.LastContactedChangedBroadcast$a); }', but not the descriptor class 'com.instabug.library.broadcast.LastContactedChangedBroadcast$a'
Note: the configuration keeps the entry point 'com.instabug.library.core.eventbus.EventBus { EventBus(io.reactivex.subjects.PublishSubject); }', but not the descriptor class 'io.reactivex.subjects.PublishSubject'
Note: the configuration keeps the entry point 'com.instabug.library.core.eventbus.EventBus { io.reactivex.disposables.Disposable subscribe(io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.library.core.eventbus.coreeventbus.SDKCoreEventSubscriber { io.reactivex.disposables.Disposable subscribe(io.reactivex.functions.Consumer); }', but not the descriptor class 'io.reactivex.functions.Consumer'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void prepare(com.instabug.library.internal.media.AudioPlayer$a); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void stream(java.lang.String,com.instabug.library.internal.media.AudioPlayer$a); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void getDurationAsync(java.lang.String,com.instabug.library.internal.media.AudioPlayer$b); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$b'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void doAction(com.instabug.library.internal.media.AudioPlayer$a); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.media.AudioPlayer { void access$000(com.instabug.library.internal.media.AudioPlayer,com.instabug.library.internal.media.AudioPlayer$a); }', but not the descriptor class 'com.instabug.library.internal.media.AudioPlayer$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.AttachmentManager { void saveBitmap(android.graphics.Bitmap,android.content.Context,com.instabug.library.internal.storage.AttachmentManager$a); }', but not the descriptor class 'com.instabug.library.internal.storage.AttachmentManager$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.AttachmentManager { void saveBitmap(android.graphics.Bitmap,java.io.File,com.instabug.library.internal.storage.AttachmentManager$a); }', but not the descriptor class 'com.instabug.library.internal.storage.AttachmentManager$a'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.cache.CacheManager { com.instabug.library.internal.storage.cache.Cache addCache(com.instabug.library.internal.storage.cache.Cache); }', but not the descriptor class 'com.instabug.library.internal.storage.cache.Cache'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.cache.CacheManager { void migrateCache(com.instabug.library.internal.storage.cache.Cache,com.instabug.library.internal.storage.cache.Cache,com.instabug.library.internal.storage.cache.CacheManager$KeyExtractor); }', but not the descriptor class 'com.instabug.library.internal.storage.cache.Cache'
Note: the configuration keeps the entry point 'com.instabug.library.internal.storage.cache.CacheManager { void migrateCache(com.instabug.library.internal.storage.cache.Cache,com.instabug.library.internal.storage.cache.Cache,com.instabug.library.internal.storage.cache.CacheManager$KeyExtractor); }', but not the descriptor class 'com.instabug.library.internal.storage.cache.Cache'
Note: the configuration keeps the entry point 'com.instabug.library.logging.InstabugLog { void addLog(com.instabug.library.logging.InstabugLog$b); }', but not the descriptor class 'com.instabug.library.logging.InstabugLog$b'
Note: the configuration keeps the entry point 'com.instabug.library.model.State { com.instabug.library.model.State setSessionProfilerTimeline(com.instabug.library.sessionprofiler.model.timeline.c); }', but not the descriptor class 'com.instabug.library.sessionprofiler.model.timeline.c'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { io.reactivex.Observable doRequest(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { com.instabug.library.network.Request buildRequest(android.content.Context,com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection buildConnection(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection connectWithNormalType(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection connectWithFileDownloadType(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection connectWithMultiPartType(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { com.instabug.library.network.RequestResponse handleFileDownloadRequestResponse(com.instabug.library.network.Request,java.net.HttpURLConnection); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection access$100(com.instabug.library.network.NetworkManager,com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection access$200(com.instabug.library.network.NetworkManager,com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { java.net.HttpURLConnection access$300(com.instabug.library.network.NetworkManager,com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager { com.instabug.library.network.RequestResponse access$600(com.instabug.library.network.NetworkManager,com.instabug.library.network.Request,java.net.HttpURLConnection); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.library.network.NetworkManager$OnDoRequestListener { void onRequestStarted(com.instabug.library.network.Request); }', but not the descriptor class 'com.instabug.library.network.Request'
Note: the configuration keeps the entry point 'com.instabug.survey.ui.custom.NpsView { void setOnSelectionListener(com.instabug.survey.ui.custom.NpsView$a); }', but not the descriptor class 'com.instabug.survey.ui.custom.NpsView$a'
Note: the configuration keeps the entry point 'com.instabug.survey.ui.custom.RatingView { void setGravity(com.instabug.survey.ui.custom.RatingView$a); }', but not the descriptor class 'com.instabug.survey.ui.custom.RatingView$a'
Note: the configuration keeps the entry point 'com.instabug.survey.ui.custom.RatingView { void setOnRatingBarChangeListener(com.instabug.survey.ui.custom.RatingView$b); }', but not the descriptor class 'com.instabug.survey.ui.custom.RatingView$b'
Note: there were 9 references to unknown classes.
You should check your configuration for typos.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Note: there were 89 unkept descriptor classes in kept class members.
You should consider explicitly keeping the mentioned classes
(using '-keep').
(http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Warning: there were 1 unresolved references to classes or interfaces.
You may need to add missing library jars or update their versions.
If your code works fine without the missing classes, you can suppress
the warnings with '-dontwarn' options.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
Warning: Exception while processing task java.io.IOException: Please correct the above warnings first.
Thread(Tasks limiter_1): destruction
> Task :app:transformClassesAndResourcesWithProguardForRelease FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
> Job failed, see logs for details
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 13s
22 actionable tasks: 10 executed, 12 up-to-date
Hey @ZOlbrys,
Thanks for Reporting this, we will release a hot-fix soon, I'll update you once it is released. For now you can use this snapshot.
implementation 'com.instabug.library:instabug:8.0.15.6-SNAPSHOT'
And don't forget to add this to your app build.gradle
before your dependencies
repositories {
....
maven {
url "https://oss.sonatype.org/content/repositories/snapshots"
}
...
}
This snapshot is completely safe to use and has no debug code at all.
Hi @mzelzoghbi - thanks for the quick response!
Using 8.0.15.6-SNAPSHOT
I am able to run the assembleRelease
task successfully.
However, I still see a lot of the notes about the configuration keeps the entry point...
etc. Do you know if these notes are something that needs to be corrected on the Instabug side? Or is there something I can do to avoid these? Sorry if it's a dumb question, I'm not too familiar with proguard yet!
Thanks again!
I am happy to hear that this snapshot solved the issue and we already released this fix in version 8.0.16
implementation 'com.instabug.library:instabug:8.0.16'
Regarding the notes, this needs to be fixed from our side and we are working on a fix that will be released soon, however, this has no impact on production code.
@mzelzoghbi Awesome, thanks for the support!
@mzelzoghbi Should I open a new ticket to track this? I'm up to version 8.0.19
and the warnings are still being reported.
@ZOlbrys can you share with me these warnings, please?
@mzelzoghbi of course. Here's some of the output I see with the Instabug 8.0.19:
Zachs-MBP:InstabugProguardExample Zach$ ./gradlew assembleRelease
ProGuard, version 6.0.3
...
> Task :app:transformClassesAndResourcesWithProguardForRelease
Request to incrementing alive workforce from 0. Current workforce (dead or alive) 0
thread-pool size=4
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationMenuView { void setPresenter(com.google.android.material.bottomnavigation.BottomNavigationPresenter); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationPresenter'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationView { void setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationView { void setOnNavigationItemReselectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemReselectedListener); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemReselectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setChipDrawable(com.google.android.material.chip.ChipDrawable); }', but not the descriptor class 'com.google.android.material.chip.ChipDrawable'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setTextAppearance(com.google.android.material.resources.TextAppearance); }', but not the descriptor class 'com.google.android.material.resources.TextAppearance'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setShowMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setHideMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.chip.ChipGroup { void setOnCheckedChangeListener(com.google.android.material.chip.ChipGroup$OnCheckedChangeListener); }', but not the descriptor class 'com.google.android.material.chip.ChipGroup$OnCheckedChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealFrameLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealGridLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealLinearLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealRelativeLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.cardview.CircularRevealCardView { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.coordinatorlayout.CircularRevealCoordinatorLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.floatingactionbutton.FloatingActionButton { void setShowMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.floatingactionbutton.FloatingActionButton { void setHideMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.navigation.NavigationView { void setNavigationItemSelectedListener(com.google.android.material.navigation.NavigationView$OnNavigationItemSelectedListener); }', but not the descriptor class 'com.google.android.material.navigation.NavigationView$OnNavigationItemSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout { void setOnLayoutChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnLayoutChangeListener); }', but not the descriptor class 'com.google.android.material.snackbar.BaseTransientBottomBar$OnLayoutChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout { void setOnAttachStateChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnAttachStateChangeListener); }', but not the descriptor class 'com.google.android.material.snackbar.BaseTransientBottomBar$OnAttachStateChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.tabs.TabLayout { void setOnTabSelectedListener(com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener); }', but not the descriptor class 'com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.textfield.TextInputLayout { void setTextInputAccessibilityDelegate(com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate); }', but not the descriptor class 'com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate'
Note: there were 21 unkept descriptor classes in kept class members.
You should consider explicitly keeping the mentioned classes
(using '-keep').
(http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
...
You can use the sample app here as well to reproduce this: https://github.com/ZOlbrys/InstabugProguardExample
if I remove the instabug dependency from the project none of these errors are reported.
Please let me know if you'd prefer a new issue, I'll gladly open one! Thanks for reviewing this!
Hi,
Application fail to build when using proguard & androidx when using instabug.
SDK Version
8.0.8.2
Steps to Reproduce the Problem
Create a project targeting & compiling for api 28 & use androidx
In
gradle.properties
add:The build will fail