In-app feedback and bug reporting tool for apps.

Overview

Instabug Android SDK

Maven Central Twitter

Instabug is an in-app feedback and bug reporting tool for mobile apps. With just a simple shake, your users or beta testers can report bugs or send in-app feedback and the SDK will capture an environment snapshot of your user's device including all console logs, server-side network requests and bug reproduction steps compiling all these details in one organised dashboard to help you debug and fix bugs faster.

Instabug also provides you with a reliable crash reporter that automatically captures a detailed report of the running environment, the different threads’ states, the steps to reproduce the crash, and the network request logs. All the data is captured automatically with no need for breadcrumbs, and you can always reply back to your users and they will receive your messages within the app.

For more info, visit Instabug.com.

Installation

Gradle

Add this line to your build.gradle file.

implementation 'com.instabug.library:instabug:<latest-version>'

Usage

In your Application class add this line to your onCreate method.

Java

new Instabug.Builder(this, "APP_TOKEN").build();

Kotlin

Instabug.Builder(this, "APP_TOKEN").build()

Notes

Some permissions are automatically added to your AndroidManifest.xml file. Some of them are required to be able to fetch some information like the network and wifi connection. Others are used to allow the user to attach images, videos, and audio recordings.

Generally, the permission request doesn't appear unless the user attempts to use any of the features requiring the permission. The only exception, if you set the invocation event to be Screenshot. Then, the storage permission will be requested when the application launches.

This behavior is happening with the screenshot invocation because there isn't any native event that tells the SDK that a screenshot has been captured. The only way to do it is to monitor the screenshots directory. The SDK is invoked once a screenshot is added to the directory while the application is active.

<uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE” />
<uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE” />
<uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE” />
<uses-permission android:name=“android.permission.ACCESS_WIFI_STATE” />
<uses-permission android:name=“android.permission.RECORD_AUDIO” />
<uses-permission android:name=“android.permission.MODIFY_AUDIO_SETTINGS” />

You can remove any of the permissions if you are not willing to use the feature associated with it as in the following example.

<uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE” tools:node=“remove”/>

More

You can also check out our API Reference for more detailed information about our SDK.

Comments
  • Instabug overrides default RxJava error handler

    Instabug overrides default RxJava error handler

    Instabug automatically overrides RxJava error handler by calling RxJavaPlugins.setErrorHandler() in initialization. Because of that OnErrorNotImplementedException is not throwed anymore and there are no logs in console.

    Steps to Reproduce the Problem

    Run this code anywhere in the app: Completable.fromAction(()-> { throw new RuntimeException(); }).subscribe();

    Expected Behavior

    App should throw:

    io.reactivex.exceptions.OnErrorNotImplementedException

    Actual Behavior

    Nothing happens - no logs in console

    Instabug integration code

    Instabug.Builder(application, "my_token") .setInvocationEvents(InstabugInvocationEvent.TWO_FINGER_SWIPE_LEFT, InstabugInvocationEvent.SHAKE) .setReproStepsState(State.ENABLED) .setViewHierarchyState(Feature.State.ENABLED) .build()

    SDK Version

    8.0.7

    Android Version

    Any

    Device Model

    Any

    [Optional] Project That Reproduces the Issue

    opened by linean 33
  • FileNotFoundException logged and reports are not sent

    FileNotFoundException logged and reports are not sent

    We get following warning in the logs when we try to build Instabug. Later on, when we try to send an email report, we get another warning in the logs even tho we get the success popup. No email is sent either.

    Stacktrace at building instabug

    java.io.FileNotFoundException: /jacoco.exec (Read-only file system) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:308) at java.io.FileOutputStream.(FileOutputStream.java:238) at org.jacoco.agent.rt.internal_8ff85ea.output.FileOutput.openFile(FileOutput.java:67) at org.jacoco.agent.rt.internal_8ff85ea.output.FileOutput.startup(FileOutput.java:49) at org.jacoco.agent.rt.internal_8ff85ea.Agent.startup(Agent.java:122) at org.jacoco.agent.rt.internal_8ff85ea.Agent.getInstance(Agent.java:50) at org.jacoco.agent.rt.internal_8ff85ea.Offline.(Offline.java:31) at org.jacoco.agent.rt.internal_8ff85ea.Offline.getProbes(Offline.java:51) at com.instabug.library.Instabug$Builder.$jacocoInit(Unknown Source:13) at com.instabug.library.Instabug$Builder.(Unknown Source:0) at com.takeaway.driver.DriverApplication.onCreate(DriverApplication.java:130) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871) at android.app.ActivityThread.access$1100(ActivityThread.java:199) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

    Stacktrace at sending report

    java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.takeaway.driver/files/instabug/attachments/bug_1540296646658_.jpg (No such file or directory) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:231) at java.io.FileInputStream.(FileInputStream.java:165) at com.instabug.library.util.BitmapUtils$1.run(BitmapUtils.java:111) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at com.instabug.library.util.threading.b$1.run(PriorityThreadFactory.java:28) at java.lang.Thread.run(Thread.java:764)

    SDK Version

    8.0.11

    Android Version

    Android 9

    Device Model

    Google Pixel XL

    opened by sfseyhan 30
  • java.lang.IllegalStateException: Only fullscreen activities can request orientation

    java.lang.IllegalStateException: Only fullscreen activities can request orientation

    Got this error when targeting Android O (API 27).

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.graffitab.dev/com.instabug.library.InstabugFeedbackActivity}: java.lang.IllegalStateException: Only fullscreen activities can request orientation
                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                                           at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:105)
                                                                           at android.os.Looper.loop(Looper.java:164)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                                        Caused by: java.lang.IllegalStateException: Only fullscreen activities can request orientation
                                                                           at android.os.Parcel.readException(Parcel.java:1950)
                                                                           at android.os.Parcel.readException(Parcel.java:1888)
                                                                           at android.app.IActivityManager$Stub$Proxy.setRequestedOrientation(IActivityManager.java:5675)
                                                                           at android.app.Activity.setRequestedOrientation(Activity.java:5739)
                                                                           at com.instabug.library.util.OrientationUtils.lockScreenOrientation(OrientationUtils.java:72)
                                                                           at com.instabug.library.util.OrientationUtils.handelOrientation(OrientationUtils.java:96)
                                                                           at com.instabug.library.InstabugFeedbackActivity.onCreate(InstabugFeedbackActivity.java:116)
    

    Any ideas on how to resolve?

    opened by gchristov 30
  • AndroidX and proguard: fail to build

    AndroidX and proguard: fail to build

    Hi,

    Application fail to build when using proguard & androidx when using instabug.

    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.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
    Warning: com.instabug.survey.network.service.a: can't find referenced class com.instabug.library.network.NetworkManager$OnDoRequestListener
    

    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:

    android.enableJetifier=true
    android.useAndroidX=true
    

    The build will fail

    opened by fleficher 28
  • Fatal Exception: java.lang.UnsatisfiedLinkError No implementation found for java.lang.String com.instabug.library.network.service.synclogs.SyncLogKeyProvider.getNativeMatchingEmailPrefix()

    Fatal Exception: java.lang.UnsatisfiedLinkError No implementation found for java.lang.String com.instabug.library.network.service.synclogs.SyncLogKeyProvider.getNativeMatchingEmailPrefix()

    This issue happening in two places

    1. Fatal Exception: java.lang.UnsatisfiedLinkError
    No implementation found for java.lang.String com.instabug.library.network.service.synclogs.SyncLogKeyProvider.getNativeMatchingEmailPrefix() (tried Java_com_instabug_library_network_service_synclogs_SyncLogKeyProvider_getNativeMatchingEmailPrefix and Java_com_instabug_library_network_service_synclogs_SyncLogKeyProvider_getNativeMatchingEmailPrefix__)
    
    2. Caused by java.lang.UnsatisfiedLinkError
    No implementation found for java.lang.String com.instabug.library.network.authorization.NetworkOfficer.getClientId() (tried Java_com_instabug_library_network_authorization_NetworkOfficer_getClientId and Java_com_instabug_library_network_authorization_NetworkOfficer_getClientId__)
    
    Fatal Exception: java.lang.RuntimeException: An error occurred while executing doInBackground()
           at android.os.AsyncTask$3.done(AsyncTask.java:354)
    

    Steps to Reproduce the Problem

    No specific steps to reproduce this issue.

    Expected Behavior

    The application should not crash.

    Actual Behavior

    Application crashing.

    Instabug integration code

    Instabug.Builder(mApplication, instabugToken)
                  .setInvocationEvents(InstabugInvocationEvent.SHAKE)
                  .build()
    

    SDK Version

    9.1.5

    Android Version

    Android 9

    Device Model

    AOSP on IA Emulator

    pending-feedback 
    opened by RajaReddyP 27
  • RxJava 2

    RxJava 2

    Hello!

    We use RxJava 2 in our project, but you use RxJava 1. We want to buy Instabug to use in our Ios and Android projects, but this issue stops us from making a decision.

    What can we do? I think we even can exclude this file from build, but this will lead to addition 6k methods in apk anyway...

    FAILURE: Build failed with an exception.

    • What went wrong: Execution failed for task ':bankOK:transformResourcesWithMergeJavaResForBetaNewApiDebug'.

    com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties File1: /Users/gaket/.gradle/caches/modules-2/files-2.1/io.reactivex.rxjava2/rxjava/2.0.2/cfccdd18cdfbe7b4773d42c9f3512eeafbe5cbf9/rxjava-2.0.2.jar File2: /Users/gaket/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.1.9/e4362e62f1ba92e360b197d6d7ffae67e5ecae9a/rxjava-1.1.9.jar

    opened by Gaket 27
  • NPE in InstabugOkhttpInterceptor

    NPE in InstabugOkhttpInterceptor

    Steps to Reproduce the Problem

    Add the instabug http interceptor

    Expected Behavior

    Log http calls to instabug

    Actual Behavior

    Crash

    Instabug integration code

    In Application subclass, called at the end of onCreate:

        Instabug.Builder(this, instabugToken)
          .setConsoleLogState(Feature.State.ENABLED)
          .setInvocationEvents(InstabugInvocationEvent.SHAKE)
          .setUserDataState(Feature.State.DISABLED)
          .build()
        Instabug.setColorTheme(InstabugColorTheme.InstabugColorThemeLight)
        Instabug.setDebugEnabled(BuildConfig.DEBUG)
    

    In Dagger module that sets up networking:

        val builder = OkHttpClient.Builder()
          .cache(cache)
          .connectTimeout(TIMEOUT_PERIOD, TimeUnit.MINUTES)
          .readTimeout(TIMEOUT_PERIOD, TimeUnit.MINUTES)
          .addNetworkInterceptor(loggingInterceptor)
          .addInterceptor(authInterceptor)
          .addInterceptor(InstabugOkhttpInterceptor())
          .build()
    

    SDK Version

    9.0.3

    Android Version

    23

    Device Model

    emulator

    Stacktrace

    12-10 12:42:25.780 E/AndroidRuntime( 4981): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String okhttp3.MediaType.toString()' on a null object reference
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at com.instabug.library.okhttplogger.InstabugOkhttpInterceptor.populateNetworkResponse(InstabugOkhttpInterceptor.java:212)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at com.instabug.library.okhttplogger.InstabugOkhttpInterceptor.intercept(InstabugOkhttpInterceptor.java:88)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at com.envoy.app.api.AuthInterceptor.intercept(AuthInterceptor.kt:16)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:184)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at okhttp3.RealCall$AsyncCall.run(RealCall.kt:136)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    12-10 12:42:25.780 E/AndroidRuntime( 4981): 	at java.lang.Thread.run(Thread.java:818)
    
    opened by edenman 26
  • Instabug fails to initialize, throwing ClassNotFoundException

    Instabug fails to initialize, throwing ClassNotFoundException

    Instabug stopped working for us in version 4.5.0. 4.3.3 is working, but versions 4.5.0-4.13.1 are not. This stacktrace is repeated for lots of Instabug classes:

    04-18 17:01:20.424 1948-1948/no.ruter.reise.labs.debug W/System.err:     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5754)
        		... 8 more
    java.lang.ClassNotFoundException: com.instabug.bug.InstabugBugReporting
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:453)
            at java.lang.Class.forName(Class.java:378)
            at com.instabug.library.c.a.c(InstabugBugReporting.java:286)
            at com.instabug.library.c.a.b(InstabugBugReporting.java:130)
            at com.instabug.library.Instabug$Builder.build(Instabug.java:2561)
            at com.instabug.library.Instabug$Builder.build(Instabug.java:2617)
    04-18 17:01:20.425 1948-1948/no.ruter.reise.labs.debug W/System.err:     at no.ruter.reise.util.InstabugUtils.setUpInstabug(InstabugUtils.java:21)
            at no.ruter.reise.MainApplication.onCreate(MainApplication.kt:53)
            at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
            at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5874)
            at android.app.ActivityThread.access$1100(ActivityThread.java:193)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1623)
            at android.os.Handler.dispatchMessage(Handler.java:106)
            at android.os.Looper.loop(Looper.java:164)
            at android.app.ActivityThread.main(ActivityThread.java:6656)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
        Caused by: java.lang.ClassNotFoundException: Didn't find class "com.instabug.bug.InstabugBugReporting" on path: DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/base.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_dependencies_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_resources_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_0_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_1_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_2_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_3_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_4_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_5_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_6_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_7_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_8_apk.apk", zip file "/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/lib/arm64, /system/lib64]]
            at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        	... 19 more
        	Suppressed: java.io.IOException: No original dex files found for dex location /data/app/no.ruter.reise.labs.debug-POoCZOXNj5I3QGuFs40rag==/split_lib_resources_apk.apk
            at dalvik.system.DexFile.openDexFileNative(Native Method)
            at dalvik.system.DexFile.openDexFile(DexFile.java:356)
            at dalvik.system.DexFile.<init>(DexFile.java:103)
            at dalvik.system.DexFile.<init>(DexFile.java:77)
            at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374)
            at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337)
            at dalvik.system.DexPathList.<init>(DexPathList.java:157)
            at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
            at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
    04-18 17:01:20.426 1948-1948/no.ruter.reise.labs.debug W/System.err:     at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
            at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
            at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:72)
            at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:38)
            at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:713)
            at android.app.LoadedApk.getClassLoader(LoadedApk.java:747)
            at android.app.LoadedApk.getResources(LoadedApk.java:969)
            at android.app.ContextImpl.createAppContext(ContextImpl.java:2298)
            at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5754)
        		... 8 more
    

    Instabug is set up like this:

    new Instabug.Builder(application, "(...)")
                    .setInvocationEvent(InstabugInvocationEvent.SCREENSHOT_GESTURE)
                    .setCrashReportingState(Feature.State.DISABLED)
                    .setSurveysState(Feature.State.DISABLED)
                    .setReproStepsState(State.DISABLED)
                    .build();
    

    Please tell me if I can provide more information.

    opened by joharei 26
  • Crashing on Android

    Crashing on Android

    I updated to version 8.6.1 of the plugin (from 8.5.1). I uploaded to beta on the Google Play Store, and getting crash reports related to instabug

    SDK Version

    8.6.1

    React Native, iOS and Android Versions

      React Native Environment Info:
        System:
          OS: macOS 10.14.6
          CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
          Memory: 4.61 GB / 16.00 GB
          Shell: 3.2.57 - /bin/bash
        Binaries:
          Node: 10.15.3 - ~/.nvm/versions/node/v10.15.3/bin/node
          Yarn: 1.15.2 - ~/.yarn/bin/yarn
          npm: 6.10.2 - ~/.nvm/versions/node/v10.15.3/bin/npm
          Watchman: 4.9.0 - /usr/local/bin/watchman
        SDKs:
          iOS SDK:
            Platforms: iOS 12.4, macOS 10.14, tvOS 12.4, watchOS 5.3
          Android SDK:
            API Levels: 28, 29
            Build Tools: 28.0.3, 29.0.2
            System Images: android-28 | Google APIs Intel x86 Atom
        IDEs:
          Android Studio: 3.4 AI-183.6156.11.34.5692245
          Xcode: 10.3/10G8 - /usr/bin/xcodebuild
        npmPackages:
          react: 16.8.3 => 16.8.3 
          react-native: 0.59.9 => 0.59.9 
        npmGlobalPackages:
          react-native-cli: 2.0.1
          react-native-git-upgrade: 0.2.7
    

    Device Model

    Android 8.0.0 Galaxy S7

    APIBuildChecker.java line 6
    com.instabug.library.APIBuildChecker.check
    
    Fatal Exception: java.lang.RuntimeException
    An error occurred while executing doInBackground()
    Fatal Exception: java.lang.RuntimeException: An error occurred while executing doInBackground()
           at android.os.AsyncTask$3.done + 353(AsyncTask.java:353)
           at java.util.concurrent.FutureTask.finishCompletion + 383(FutureTask.java:383)
           at java.util.concurrent.FutureTask.setException + 252(FutureTask.java:252)
           at java.util.concurrent.FutureTask.run + 271(FutureTask.java:271)
           at java.util.concurrent.ThreadPoolExecutor.runWorker + 1162(ThreadPoolExecutor.java:1162)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run + 636(ThreadPoolExecutor.java:636)
           at java.lang.Thread.run + 764(Thread.java:764)
    
    opened by jacquesdev 23
  • java.lang.NullPointerException on BugReportingFragment.java:258

    java.lang.NullPointerException on BugReportingFragment.java:258

    Hi guys!

    We just detected this crash in our live product:

    Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'com.instabug.library.model.State com.instabug.library.model.BaseReport.getState()' on a null object reference at com.instabug.bug.view.c.initViews(BugReportingFragment.java:258) at com.instabug.library.core.ui.BaseFragment.onCreateView(BaseFragment.java:38) at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827) at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3244) at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200) at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597) at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177) at com.instabug.library.core.ui.BaseFragmentActivity.onStart(BaseFragmentActivity.java:50) at com.instabug.bug.view.BugReportingActivity.onStart(BugReportingActivity.java:123) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1249) at android.app.Activity.performStart(Activity.java:6897) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2684) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2782) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1521) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6228) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)

    Steps to Reproduce the Problem

    So far the only affected device is: Xiaomi Redmi 5A

    SDK Version

    com.instabug.library:instabug:8.0.8

    Android Version

    7

    Device Model

    Xiaomi Redmi 5A

    opened by ghataa 22
  • Instabug.getLocale NullPointerException

    Instabug.getLocale NullPointerException

    Hi,

    We have some reports on crashlytics about NPEs in InstabugFeedbackActivity :

    java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Locale com.instabug.library.g.b.a(android.content.Context)' on a null object reference
           at com.instabug.library.g.d.b(SourceFile:150)
           at com.instabug.library.Instabug.getLocale(SourceFile:847)
           at com.instabug.library.InstabugFeedbackActivity.onCreate(SourceFile:119)
           at android.app.Activity.performCreate(Activity.java:6955)
           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
           at android.app.ActivityThread.-wrap14(ActivityThread.java)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
           at android.os.Handler.dispatchMessage(Handler.java:102)
           at android.os.Looper.loop(Looper.java:154)
           at android.app.ActivityThread.main(ActivityThread.java:6776)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
    

    Version : 3.9.3-SNAPSHOT

    opened by fleficher 16
  • Bug reporting by screenshot invocation isn't working for targetSdkVersion less than 30

    Bug reporting by screenshot invocation isn't working for targetSdkVersion less than 30

    Steps to Reproduce the Problem

    1. Change Sample build.gradle targetSdkVersion less than 30 (eg: 29, 28, 26)
    2. Run app
    3. Take a screenshot

    Expected Behavior

    Show Instabug dialog

    Actual Behavior

    Nothing happend

    Instabug integration code

    defaultConfig {
        applicationId "com.example.instabug"
        minSdkVersion 15
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        flavorDimensions "default"
        vectorDrawables.useSupportLibrary = true
    }
    

    SDK Version

    11.6.0

    Android Version

    Android 12 & Android 13

    Device Model

    HUAWEI ANA-AN00 & Emulator

    [Optional] Project That Reproduces the Issue

    opened by wangbax 0
  • Multiple

    Multiple "Something went wrong while getting root views" exception leads to a crash "Fatal signal 6 (SIGABRT)"

    Steps to Reproduce the Problem

    In our app we have a screen with custom view, in which we do quite a lot of operations on bitmaps and drawing them on canvas. Depending on user interaction, we can change the state of that custom view and replace all drawn bitmaps with different ones. It seems that Instabug can't handle this case when there's a lot of bitmaps drawn and we change the state of that view quickly.

    Expected Behavior

    No crashes.

    Actual Behavior

    This error occurs in Logcat multiple times:

    Something went wrong while getting root views
    java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
    	at java.util.ArrayList.get(ArrayList.java:437)
    	at android.view.ViewGroup.getAndVerifyPreorderedView(ViewGroup.java:3766)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4288)
    	at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1994)
    	at android.view.View.draw(View.java:23066)
    	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
    	at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1277)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
    	at android.view.View.draw(View.java:23066)
    	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
    	at android.view.View.draw(View.java:23198)
    	at android.view.View.draw(View.java:23068)
    	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
    	at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1277)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
    	at android.view.View.draw(View.java:23066)
    	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
    	at android.view.View.draw(View.java:23066)
    	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
    	at android.view.View.draw(View.java:23066)
    	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
    	at android.view.View.draw(View.java:23066)
    	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
    	at android.view.View.draw(View.java:23066)
    	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
    	at android.view.View.draw(View.java:23066)
    	at android.view.ViewGroup.drawChild(ViewGroup.java:4529)
    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290)
    	at android.view.View.draw(View.java:23198)
    	at com.android.internal.policy.DecorView.draw(DecorView.java:819)
    	at com.instabug.library.instacapture.screenshot.pixelcopy.a.a(SourceFile:32)
    	at com.instabug.library.instacapture.screenshot.pixelcopy.a.a(SourceFile:11)
    	at com.instabug.library.instacapture.screenshot.pixelcopy.h.b(SourceFile:12)
    	at com.instabug.library.instacapture.screenshot.pixelcopy.h.a(SourceFile:1)
    	at com.instabug.library.instacapture.screenshot.pixelcopy.c.onPixelCopyFinished(SourceFile:1)
    	at android.view.PixelCopy$1.run(PixelCopy.java:191)
    	at android.os.Handler.handleCallback(Handler.java:942)
    	at android.os.Handler.dispatchMessage(Handler.java:99)
    	at android.os.Looper.loopOnce(Looper.java:201)
    	at android.os.Looper.loop(Looper.java:288)
    	at android.os.HandlerThread.run(HandlerThread.java:67)
    

    Eventually it leads to a crash:

    09:36:33.704  A  Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 17263 ###, pid 17263 ###
    09:36:34.650  E  The RippleDrawable.STYLE_PATTERNED animation is not supported for a non-hardware accelerated Canvas. Skipping animation.
    09:36:34.651  E  The RippleDrawable.STYLE_PATTERNED animation is not supported for a non-hardware accelerated Canvas. Skipping animation.
    09:36:35.301  E  The RippleDrawable.STYLE_PATTERNED animation is not supported for a non-hardware accelerated Canvas. Skipping animation.
    09:36:35.301  E  The RippleDrawable.STYLE_PATTERNED animation is not supported for a non-hardware accelerated Canvas. Skipping animation.
    09:36:35.514  A  *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    09:36:35.515  A  Build fingerprint: 'google/sunfish/sunfish:13/TP1A.220905.004/8927612:user/release-keys'
    09:36:35.515  A  Revision: 'MP1.0'
    09:36:35.515  A  ABI: 'arm64'
    09:36:35.515  A  Timestamp: 2022-09-20 09:36:34.179448997+0200
    09:36:35.515  A  Process uptime: 157s
    09:36:35.515  A  Cmdline: ###
    09:36:35.515  A  pid: 17263, tid: 17263, name: ###  >>> ### <<<
    09:36:35.515  A  uid: 10059
    09:36:35.515  A  signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
    09:36:35.515  A  Abort message: 'Scudo ERROR: race on chunk header at address 0x2000072c1ec1030'
    09:36:35.515  A      x0  0000000000000000  x1  000000000000436f  x2  0000000000000006  x3  0000007fda0f6b00
    09:36:35.515  A      x4  0000000000000080  x5  0000000000000080  x6  0000000000000080  x7  8080808080808080
    09:36:35.515  A      x8  00000000000000f0  x9  0000007563a3ea00  x10 0000000000000001  x11 0000007563a7cce4
    09:36:35.515  A      x12 0101010101010101  x13 000005d7e27d7af2  x14 002981084e305c38  x15 0000000000000040
    09:36:35.515  A      x16 0000007563ae1d60  x17 0000007563abeb70  x18 000000756e8bc000  x19 000000000000436f
    09:36:35.515  A      x20 000000000000436f  x21 00000000ffffffff  x22 0000000000000051  x23 02000072c1ec1030
    09:36:35.515  A      x24 00000072c1ec103d  x25 af38000000006101  x26 0000000000000006  x27 0000000000000001
    09:36:35.515  A      x28 00000072c1ec1040  x29 0000007fda0f6b80
    09:36:35.515  A      lr  0000007563a6e868  sp  0000007fda0f6ae0  pc  0000007563a6e894  pst 0000000000000000
    09:36:35.515  A  backtrace:
    09:36:35.515  A        #00 pc 0000000000051894  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: 058e3ec96fa600fb840a6a6956c6b64e)
    09:36:35.515  A        #01 pc 0000000000041714  /apex/com.android.runtime/lib64/bionic/libc.so (scudo::die()+8) (BuildId: 058e3ec96fa600fb840a6a6956c6b64e)
    09:36:35.515  A        #02 pc 0000000000041dc0  /apex/com.android.runtime/lib64/bionic/libc.so (scudo::ScopedErrorReport::~ScopedErrorReport()+32) (BuildId: 058e3ec96fa600fb840a6a6956c6b64e)
    09:36:35.515  A        #03 pc 0000000000041f5c  /apex/com.android.runtime/lib64/bionic/libc.so (scudo::reportHeaderRace(void*)+96) (BuildId: 058e3ec96fa600fb840a6a6956c6b64e)
    09:36:35.515  A        #04 pc 0000000000043f98  /apex/com.android.runtime/lib64/bionic/libc.so (scudo::Allocator<scudo::AndroidConfig, &(scudo_malloc_postinit)>::reallocate(void*, unsigned long, unsigned long)+560) (BuildId: 058e3ec96fa600fb840a6a6956c6b64e)
    09:36:35.515  A        #05 pc 0000000000043d00  /apex/com.android.runtime/lib64/bionic/libc.so (scudo_realloc+40) (BuildId: 058e3ec96fa600fb840a6a6956c6b64e)
    09:36:35.515  A        #06 pc 000000000003e300  /apex/com.android.runtime/lib64/bionic/libc.so (realloc+84) (BuildId: 058e3ec96fa600fb840a6a6956c6b64e)
    09:36:35.515  A        #07 pc 0000000000411f58  /system/lib64/libhwui.so (SkPath::lineTo(float, float)+1108) (BuildId: 31b5b473e5c68e0d0aef2c20a1aa8daa)
    09:36:35.515  A        #08 pc 00000000002cc854  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+116)
    09:36:35.515  A        #09 pc 00000000021e26bc  /memfd:jit-cache (deleted) (android.graphics.Path.lineTo+92)
    09:36:35.515  A        #10 pc 00000000021c1b4c  /memfd:jit-cache (deleted) (###)
    09:36:35.515  A        #11 pc 000000000217894c  /memfd:jit-cache (deleted) (###)
    09:36:35.515  A        #12 pc 0000000002162c78  /memfd:jit-cache (deleted) (###)
    09:36:35.515  A        #13 pc 000000000212a7d4  /memfd:jit-cache (deleted) (###)
    09:36:35.515  A        #14 pc 000000000213ee34  /memfd:jit-cache (deleted) (###)
    09:36:35.515  A        #15 pc 0000000002155574  /memfd:jit-cache (deleted) (###)
    09:36:35.515  A        #16 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.515  A        #17 pc 000000000002855e  [anon:dalvik-classes27.dex extracted in memory from /data/app/###/base.apk!classes27.dex] (###)
    09:36:35.515  A        #18 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.515  A        #19 pc 0000000000055a6e  [anon:dalvik-classes26.dex extracted in memory from /data/app/###/base.apk!classes26.dex] (###)
    09:36:35.515  A        #20 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.515  A        #21 pc 000000000002b320  [anon:dalvik-classes21.dex extracted in memory from /data/app/###/base.apk!classes21.dex] (###)
    09:36:35.515  A        #22 pc 000000000204f9e4  /memfd:jit-cache (deleted) (###)
    09:36:35.515  A        #23 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.515  A        #24 pc 000000000002cebc  [anon:dalvik-classes21.dex extracted in memory from /data/app/###/base.apk!classes21.dex] (###)
    09:36:35.515  A        #25 pc 0000000002112130  /memfd:jit-cache (deleted) (android.view.View.draw+272)
    09:36:35.515  A        #26 pc 00000000020d0e0c  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1580)
    09:36:35.515  A        #27 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #28 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #29 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #30 pc 000000000020a9d8  /apex/com.android.art/lib64/libart.so (nterp_helper+5848) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.515  A        #31 pc 00000000004a6de2  [anon:dalvik-classes.dex extracted in memory from /data/app/###/base.apk] (androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw+58)
    09:36:35.515  A        #32 pc 00000000020d0ca8  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1224)
    09:36:35.515  A        #33 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #34 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #35 pc 0000000002002a24  /memfd:jit-cache (deleted) (androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild+1716)
    09:36:35.515  A        #36 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #37 pc 00000000020d0ca8  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1224)
    09:36:35.515  A        #38 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #39 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #40 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #41 pc 0000000002112168  /memfd:jit-cache (deleted) (android.view.View.draw+328)
    09:36:35.515  A        #42 pc 00000000020d0e0c  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1580)
    09:36:35.515  A        #43 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #44 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #45 pc 0000000002002a24  /memfd:jit-cache (deleted) (androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild+1716)
    09:36:35.515  A        #46 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #47 pc 00000000020d0ca8  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1224)
    09:36:35.515  A        #48 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #49 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #50 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #51 pc 00000000020d0ca8  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1224)
    09:36:35.515  A        #52 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #53 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #54 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #55 pc 00000000020d0ca8  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1224)
    09:36:35.515  A        #56 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #57 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #58 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #59 pc 00000000020d0ca8  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1224)
    09:36:35.515  A        #60 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #61 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #62 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #63 pc 00000000020d0ca8  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1224)
    09:36:35.515  A        #64 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #65 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #66 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #67 pc 00000000020d0ca8  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1224)
    09:36:35.515  A        #68 pc 00000000020b02a8  /memfd:jit-cache (deleted) (android.view.View.draw+1880)
    09:36:35.515  A        #69 pc 0000000002185a9c  /memfd:jit-cache (deleted) (android.view.ViewGroup.drawChild+156)
    09:36:35.515  A        #70 pc 00000000020eb39c  /memfd:jit-cache (deleted) (android.view.ViewGroup.dispatchDraw+2156)
    09:36:35.515  A        #71 pc 0000000002112168  /memfd:jit-cache (deleted) (android.view.View.draw+328)
    09:36:35.515  A        #72 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.515  A        #73 pc 0000000000403284  /system/framework/framework.jar (com.android.internal.policy.DecorView.draw+0)
    09:36:35.515  A        #74 pc 00000000020d0e0c  /memfd:jit-cache (deleted) (android.view.View.updateDisplayListIfDirty+1580)
    09:36:35.515  A        #75 pc 00000000021d4018  /memfd:jit-cache (deleted) (android.view.ThreadedRenderer.updateViewTreeDisplayList+200)
    09:36:35.515  A        #76 pc 00000000021cd9d8  /memfd:jit-cache (deleted) (android.view.ThreadedRenderer.updateRootDisplayList+152)
    09:36:35.515  A        #77 pc 00000000021cecbc  /memfd:jit-cache (deleted) (android.view.ThreadedRenderer.draw+204)
    09:36:35.515  A        #78 pc 000000000206cc30  /memfd:jit-cache (deleted) (android.view.ViewRootImpl.draw+3104)
    09:36:35.515  A        #79 pc 0000000002165dcc  /memfd:jit-cache (deleted) (android.view.ViewRootImpl.performDraw+572)
    09:36:35.515  A        #80 pc 00000000020b6768  /memfd:jit-cache (deleted) (android.view.ViewRootImpl.performTraversals+20280)
    09:36:35.515  A        #81 pc 000000000219f020  /memfd:jit-cache (deleted) (android.view.ViewRootImpl.doTraversal+320)
    09:36:35.515  A        #82 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.515  A        #83 pc 00000000003d18ec  /system/framework/framework.jar (android.view.ViewRootImpl$TraversalRunnable.run+4)
    09:36:35.515  A        #84 pc 0000000002161590  /memfd:jit-cache (deleted) (android.view.Choreographer$CallbackRecord.run+368)
    09:36:35.515  A        #85 pc 00000000021687ec  /memfd:jit-cache (deleted) (android.view.Choreographer$CallbackRecord.run+364)
    09:36:35.515  A        #86 pc 0000000002116bd8  /memfd:jit-cache (deleted) (android.view.Choreographer.doCallbacks+760)
    09:36:35.515  A        #87 pc 000000000204c8bc  /memfd:jit-cache (deleted) (android.view.Choreographer.doFrame+2812)
    09:36:35.515  A        #88 pc 0000000002163148  /memfd:jit-cache (deleted) (android.view.Choreographer$FrameDisplayEventReceiver.run+184)
    09:36:35.515  A        #89 pc 000000000217bfd8  /memfd:jit-cache (deleted) (android.os.Handler.handleCallback+152)
    09:36:35.515  A        #90 pc 000000000216e764  /memfd:jit-cache (deleted) (android.os.Handler.dispatchMessage+116)
    09:36:35.516  A        #91 pc 00000000020f7ea4  /memfd:jit-cache (deleted) (android.os.Looper.loopOnce+1444)
    09:36:35.516  A        #92 pc 0000000000209a9c  /apex/com.android.art/lib64/libart.so (nterp_helper+1948) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.516  A        #93 pc 0000000000497886  /system/framework/framework.jar (android.os.Looper.loop+162)
    09:36:35.516  A        #94 pc 0000000000209334  /apex/com.android.art/lib64/libart.so (nterp_helper+52) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.516  A        #95 pc 00000000001bb65e  /system/framework/framework.jar (android.app.ActivityThread.main+202)
    09:36:35.516  A        #96 pc 0000000000436e00  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+576) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.516  A        #97 pc 0000000000469534  /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1960) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.516  A        #98 pc 0000000000468d64  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+48) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.516  A        #99 pc 00000000002d1148  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+120)
    09:36:35.516  A        #100 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.516  A        #101 pc 00000000003f71de  /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
    09:36:35.516  A        #102 pc 0000000000d4ab08  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3464)
    09:36:35.516  A        #103 pc 0000000000436e00  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+576) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.516  A        #104 pc 0000000000582e28  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+900) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.516  A        #105 pc 00000000005f5f48  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+160) (BuildId: 56e704c544e6c624201be2ab4933e853)
    09:36:35.516  A        #106 pc 00000000000bcad0  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+120) (BuildId: 652257cd0faef901accde2659193d1c3)
    09:36:35.516  A        #107 pc 00000000000c85c4  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+840) (BuildId: 652257cd0faef901accde2659193d1c3)
    09:36:35.516  A        #108 pc 0000000000002554  /system/bin/app_process64 (main+1280) (BuildId: a1ab812b262121cb66f7cbe228dc9674)
    09:36:35.516  A        #109 pc 000000000004a0f4  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+96) (BuildId: 058e3ec96fa600fb840a6a6956c6b64e)
    

    Instabug integration code

    SDK Version

    11.5.0

    Android Version

    13 (API 33)

    Device Model

    Google Pixel 4a

    opened by gmatyszczak 1
  • Threading violation crashes the app

    Threading violation crashes the app

    I'm seeing this in the logcat: Threading violation: {Instabug.getTags} should only be called from a background thread, but was called from main thread.

    Which seems to somehow crash the Compose compiler:

    CrashReporting InstabugUncaughtExceptionHandler Caught an Unhandled Exception: java.lang.NullPointerException
                                                                                                        java.lang.NullPointerException
                                                                                                        	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ApplyMap.addValue(SnapshotStateObserver.kt:254)
                                                                                                        	at androidx.compose.runtime.snapshots.SnapshotStateObserver$readObserver$1.invoke(SnapshotStateObserver.kt:54)
                                                                                                        	at androidx.compose.runtime.snapshots.SnapshotStateObserver$readObserver$1.invoke(SnapshotStateObserver.kt:51)
                                                                                                        	at androidx.compose.runtime.snapshots.SnapshotKt.readable(Snapshot.kt:1823)
    
    

    Steps to Reproduce the Problem

    Use a full screen dialog fragment using a ComposeView as a root, and having a standard compose layout inside. The point of course is that Compose is used.

    The app only crashes if this dialog is opened immediately after app startup; if given a few extra seconds, then it does not.

    The issue is not reproducible when disabling Instabug. The issue was somehow mitigated by upgrading to the latest Instabug version, but is not resolved.

    Instabug integration code

    Make sure to remove your app token.

    SDK Version

    11.4.1

    Android Version

    Reproducible on Android 10 device and Android 12 Emulator.

    opened by rokoblak24 0
  • InstabugOkhttpInterceptor + Proguard breaks a network request

    InstabugOkhttpInterceptor + Proguard breaks a network request

    Our app uses Instabug and OKHttp/AndroidNetworking. Including the InstabugOkhttpInterceptor as an Interceptor causes one of our image upload requests to fail with java.net.ProtocolException: unexpected end of stream

    The issue doesn't occur in our build that's not minified. The network request looks like:

    AndroidNetworking.upload(media.uploadUrl)
                .setTag(requestTag)
                .addMultipartParameter(media.uploadParametersMap)
                .addMultipartFile("file", imageFile)
                .build()
                .setUploadProgressListener(uploadProgressListener)
    

    Is Instabug in any way modifying the requests it's intercepting?

    Versions

    Instabug: 11.4.1 OkHttp: 4.9.3 AndroidNetworking: 1.0.2

    opened by stevie-patreon 0
  • How to simulate instabug popup for android if application is using instabug shake event to show popup

    How to simulate instabug popup for android if application is using instabug shake event to show popup

    Hi Team,

    Our android application uses instabug shake event for android app to show popup to submit feedback. So whenever user shake the android device, a popup will appear in the application for a feedback to submit. From android ui automation testing point of view any idea how this shake feature testing can be automated without manually shaking the device. Any clue for shake events simulation?

    Looking forward to hearing from you soon.

    Cheers Amit

    opened by amitkumar3-qa 1
  • Crash in CacheManager.subscribe

    Crash in CacheManager.subscribe

    Steps to Reproduce the Problem

    I dont know

    Expected Behavior

    not to crash

    Actual Behavior

    crashes with stacktraces : Fatal Exception: java.lang.IllegalArgumentException: No cache exists with this ID to subscribe to at com.instabug.library.internal.storage.cache.CacheManager.subscribe(CacheManager.java:7) at com.instabug.chat.ui.f.e.h(ChatPresenter.java:3) at com.instabug.chat.ui.f.d.onStart(ChatFragment.java:3) at androidx.fragment.app.Fragment.performStart(Fragment.java:3021) at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:589) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:300) at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3128) at androidx.fragment.app.FragmentManager.dispatchStart(FragmentManager.java:3079) at androidx.fragment.app.FragmentController.dispatchStart(FragmentController.java:262) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:510) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246) at com.instabug.library.core.ui.BaseFragmentActivity.onStart(BaseFragmentActivity.java:2) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1433) at android.app.Activity.performStart(Activity.java:7923) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3335) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2047) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7590) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

    Instabug integration code

    Make sure to remove your app token. Instabug.Builder(application, application.getString(R.string.instabug_app_token)) .setInvocationEvents(InstabugInvocationEvent.SHAKE) .setReproStepsState(State.ENABLED) .build() Instabug.setLocale(Locale("ar")) BugReporting.setReportTypes(BugReporting.ReportType.BUG, BugReporting.ReportType.FEEDBACK) Instabug.setWelcomeMessageState(WelcomeMessage.State.DISABLED) Surveys.setState(Feature.State.ENABLED)

    SDK Version

    10.10.0.3530-SNAPSHOT

    Android Version

    android 10

    Device Model

    Redmi Note 7

    [Optional] Project That Reproduces the Issue

    opened by mahmoudElfeel67 1
Releases(v11.7.0)
  • v11.7.0(Dec 21, 2022)

    • Adds support for capturing fragments lifecycle events in Screen Loading and App Launch metrics in APM.
    • Supports Android 13, with target API level set to 33.
    • Updates com.google.android.play:core dependency to latest version 2.0.1.
    • Fixes an issue that caused crashes to be reported with an invalid date.
    • Fixes an issue when using Instabug.addPrivateViews() that caused the added overlay to be positioned incorrectly.
    • Fixes an OOM crash that occurred when persisting some data under specific conditions.

    Note

    Please update both com.google.android.play:core and com.google.android.play:review to the latest version v2.0.1

    Source code(tar.gz)
    Source code(zip)
  • v11.6.0(Nov 22, 2022)

    • Adds a new callback for InstabugOkhttpInterceptor that's triggered on capturing a new network log. Use it to manipulate the network log details before it's stored. Check registerNetworkLogsListener.
    • Adds a new setVideoEncoderConfig API to customize screen recording configuration.
    • Makes text used in invalid message pop up when reporting a bug customizable via COMMENT_FIELD_INSUFFICIENT_CONTENT.
    • Enhances accessibility support for surveys.
    • Adds Romanian localization.
    • Fixes various issues that led to ANRs being reported when host app is running in the background.
    • Fixes an issue that caused an uncaught IllegalStateException in chats.
    • Fixes an issue in APM custom traces that led to an inaccurate duration under certain conditions.
    Source code(tar.gz)
    Source code(zip)
  • v11.5.4(Oct 23, 2022)

  • v11.5.3(Oct 21, 2022)

  • v11.5.2(Oct 13, 2022)

    • Fixes an OutOfMemoryError that happened when capturing Session Profiler data under certain conditions.
    • Fixes an issue that caused some localized strings to be displayed in English, when using simplified Chinese or traditional Chinese locales.
    Source code(tar.gz)
    Source code(zip)
  • v11.5.1(Sep 21, 2022)

    • Removes WiFi SSID from all captured data.
    • Prevents SDK from crashing on API levels 19 and below when android.permission.GET_TASKS is missing from the app’s manifest file.
    • Fixes an OOM crash that occurred while logging network requests when a device is running low on memory.
    Source code(tar.gz)
    Source code(zip)
  • v11.5.0(Aug 30, 2022)

    • Introduces a new API to report non-fatal errors with different levels.
    • Locale field in reports now includes both language and region.
    • Adjusts ProGuard rules to fix a regression in SDK size.
    • Enhances memory usage of various SDK features.
    • Fixes a rare crash that occurred in BaseReportingFragment.
    • Fixes a compilation error that occurred when integrating APM network interceptor.
    Source code(tar.gz)
    Source code(zip)
  • v11.4.1(Aug 11, 2022)

  • v11.4.0(Jul 28, 2022)

    • Adds support for detecting user terminations (beta).
    • Adds a new API that enables reporting a non-fatal while setting a custom grouping fingerprint.
    • Fixes an exception that could be thrown if ACCESS_NETWORK_STATE permission isn’t granted.
    • Fixes an issue that caused APM network logs to not be captured when using OkHttpClient.
    Source code(tar.gz)
    Source code(zip)
  • v11.3.0(Jun 29, 2022)

    • Introduces multiple accessibility improvements to Bug Reporting UI.
    • Requires CompileSDKVersion to be set to at least 31.
    • Excludes the SDK’s SharedPreferences file from being included in backups.
    • Fixes an issue that caused Repro Steps data to be logged when Bug Reporting is disabled
    • Fixes truncated text in Bug Reporting UI in French Locale.
    • Fixes a crash that happen when capturing a screen recording under certain conditions.
    • Fixes an issue that prevented screen recordings from starting on specific devices.
    • Fixes an infrequent StackOverflowError that happened on low-end devices.
    • Fixes null request bodies in OkHttp when content-type is not set.
    Source code(tar.gz)
    Source code(zip)
  • v11.2.0(Jun 6, 2022)

    • Adds a Gradle plugin for uploading mapping files.
    • Fixes an OOM crash that happened when storing some APM network responses on low-end devices.
    • Fixes a crash that occurred under certain conditions when showing a video thumbnail in chats.
    • Fixes an OOM crash that happened in InstabugOKhttpInterceptor on low-end devices.
    • Fixes an issue that caused steps to be grouped incorrectly in Repro Steps.
    • Fixes reporting of incorrect NDK stack traces on arm64-v8a devices.
    • Fixes an issue that caused some GET requests to show an incorrect request body.
    • Updates ProGuard rules to ensure compatibility with other SDKs.
    Source code(tar.gz)
    Source code(zip)
  • v11.1.0(May 19, 2022)

    • Adds a new API that allows configuring a minimum character count for the description field in bug reports.

    • Enhances crash reporting to be able to capture crashes that occur very early during application initialization.

    • Enhances memory utilization in various parts of the SDK to avoid out of memory errors on devices with low memory.

    • Fixes an issue that prevents users from being able to stop a screen recording on specific devices.

    • Various performance and stability enhancements.

    Source code(tar.gz)
    Source code(zip)
  • 11.0.0(Apr 7, 2022)

    • Introduces a newignoreFlagSecure(boolean isEnabled) API that can be used to stop ignoring screenshots from activities that have FLAG_SECURE enabled.
    • Introduces a newisUsageExceeded() API that return whether the current app has exceeded usage limits for current plan.
    • Enhances the reporting of emulator device types in APM.
    • Removes a set of APIs that have been previously deprecated.
    • Fixes an issue that caused a rare IllegalStateException when using in-app chats.
    • Fixes a typo Indonesian locale.
    Source code(tar.gz)
    Source code(zip)
  • v10.13.0(Mar 2, 2022)

    • Adds support for gRPC network requests in APM.

    • Fixes an issue that resulted in not being able to send identified user email in bug reports.

    • Fixes a crash that occurred under certain conditions while replying to a message in chats.

    • Fixes a few crashes that happened when running on low-end devices with low memory.

    • Optimizes memory usage and performance of various components.

    Source code(tar.gz)
    Source code(zip)
  • 10.12.3(Feb 11, 2022)

    • Fixes an issue with masking certain views that resulted in a crash.
    • Fixes a crash that occurred under certain conditions when logging Repro Steps.
    • Fixes a few crashes that happened when running on low-end devices with low memory.
    • Fixes an issue that resulted in not being able to dismiss in-app notifications.
    • Optimizes performance of various parts of the SDK to avoid possible ANRs on low-end devices.
    Source code(tar.gz)
    Source code(zip)
  • 10.12.2(Feb 11, 2022)

  • 10.12.1(Jan 23, 2022)

    • Fixes an issue that may cause some surveys to appear more than once.
    • Fixes an issue causes the current view to be incorrect when reporting a bug.
    • Fixes a crash that occurred while capturing and storing user steps.
    • Fixes a crash that may occur when disabling Repro Steps programmatically.
    • Fixes a few issues that may leads to crashes in multiple usage scenarios.
    • Optimizes memory usage and performance of various components.

    Fixes #414

    Source code(tar.gz)
    Source code(zip)
  • v10.12.0(Jan 10, 2022)

    • Capturing GraphQL requests natively in APM.
    • Introducing endScreenLoading API in APM.
    • Allow dismissing the 2nd Question in NPS surveys.
    • Fix SDK modules resolution issue.
    • Fix Obfuscation Issue.
    Source code(tar.gz)
    Source code(zip)
  • 10.11.1(Dec 30, 2021)

    • Fixing a critical issue that impacts the upgrade flow from a specific SDK version (10.4.3) which caused some SDK functionality to be disabled. We highly recommend updating to this version to keep your SDK functioning correctly.
    Source code(tar.gz)
    Source code(zip)
  • v10.11.0(Dec 8, 2021)

    • Adds a new UI Loading metric to track app performance during transitions between screens.

    • Fixes various issues reported by StrictMode.

    • Fixes an issue that delayed or prevented invocation of Instabug when using RxJava.

    • Fixes an issue that causes in-app notifications to reappear after they have been dismissed.

    • Removes logging of application token to Logcat.

    • Ensures that all files stored locally remain encrypted at all times.

    Source code(tar.gz)
    Source code(zip)
  • 10.10.1(Nov 18, 2021)

  • 10.10.0(Oct 28, 2021)

  • 10.9.1(Oct 12, 2021)

  • 10.9.0(Sep 13, 2021)

  • 10.7.2(Jul 8, 2021)

  • 10.7.1(Jun 27, 2021)

  • 10.6.1(Jun 12, 2021)

  • 10.6.0(Jun 9, 2021)

    • Adding a new API to enable users to attach custom attributes for network requests to Instabug
    • SDK launch time optimization
    • Various bug fixes
    Source code(tar.gz)
    Source code(zip)
  • 10.5.1(May 30, 2021)

Owner
Instabug
In-App Feedback and Bug Reporting for mobile apps
Instabug
CrashBottomSheet shows a beautiful BottomSheetDialog when app crashes instead of displaying ugly app stopped working dialog.

CrashBottomSheet Library for Android This library allows android applications to launch a nice beautiful BottomSheetDialog when app crashes instead of

Dheeraj Kumar 11 Dec 22, 2020
HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

Version 5.2.0 HockeySDK-Android implements support for using HockeyApp in your Android applications. The following features are currently supported: C

Bit Stadium GmbH 280 Dec 13, 2022
Bugsnag crash monitoring and reporting tool for Android apps

Bugsnag error monitoring & exception reporter for Android Get comprehensive Android crash reports to quickly debug errors. Bugsnag's Android crash rep

Bugsnag 1.1k Dec 26, 2022
Beetlebug is an open source insecure Android application with CTF challenges built for Android Penetration Testers and Bug Bounty hunters.

Beetlebug Beetlebug is a beginner-friendly Capture the Flag Android application that aims to inspire interest in Mobile Application Security. It is ge

Hafiz Abdulaziz 60 Oct 11, 2022
Solves every bug, ever, for any Paper server.

NoServer Solves every bug, ever, for any Paper server. How does it work? By employing the use of advanced philosophical-programmatic thinking, we have

Brian 7 Dec 29, 2021
Android 12 beta bug activity doesnt pause

android-12-beta-bug-activity-doesnt-pause Tracker link: https://issuetracker.google.com/u/1/issues/202616720 The issue: clicking the "Recent" button o

Nam Nguyen Hoai 1 Oct 11, 2021
FragmentContainerViewIdBugDemo - minimal repro project demonstrating a bug in FragmentContainerView's id check logic in the context of a dynamic feature module

FragmentContainerViewIdBugDemo minimal reproduce project demonstrating an apparent bug in FragmentContainerView's id check logic in the context of a d

null 0 Jan 5, 2022
Demo project for a bug in coil:2.0.0-alpha06

Demo Project for Coil alpha06 issue This is a demo project for an issue in coil:

Tobias Herrmann 0 Jan 12, 2022
Bug Tablut - an artificial intelligence for the Tablut Game Competition

Bug Tablut is an artificial intelligence for the Tablut Game Competition organized by the Foundations of Artificial Intelligence M AA 2021-2022 course at the Unibo. The project is written in Kotlin. The project realizes a player for an ancient Nordic strategy board game named Tablut.

DaniDF 2 Jul 3, 2022
Bug Tablut is an artificial intelligence for the Tablut Game Competition written in Kotlin

Bug Tablut is an artificial intelligence for the Tablut Game Competition organized by the Foundations of Artificial Intelligence M AA 2021-2022 course at the Unibo. The project is written in Kotlin. The project realizes a player for an ancient Nordic strategy board game named "Tablut".

DaniDF 2 Jul 3, 2022
Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Provides easy means to validate with dependencies.

android-formidable-validation Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Pr

Linden 147 Nov 20, 2022
A custom ViewPager title strip which gives continuous feedback to the user when scrolling

SmartTabLayout A custom ViewPager title strip which gives continuous feedback to the user when scrolling. This library has been added some features an

ogaclejapan 7k Jan 1, 2023
Extended Android Tab Layout with animated indicators that have continuous feedback.

Dachshund Tab Layout Introduction Boosted Android Tab Layout with custom animated indicators including "Dachshund" animation inspired by this. Sample

Andrii 859 Nov 10, 2022
Pretty material design toasts with feedback animations

Load Toast Library The default toasts are ugly and don't really provide much more than a short message. This small library provides a better toast whi

null 1.5k Dec 22, 2022
A custom ViewPager title strip which gives continuous feedback to the user when scrolling

SmartTabLayout A custom ViewPager title strip which gives continuous feedback to the user when scrolling. This library has been added some features an

ogaclejapan 7k Jan 7, 2023
NPS android library to get the feedback you need from users

netpromoterscore NPS android library helps you to get the feedback you need from the users Gradle Dependency: implementation 'com.github.quantumlibs:n

Nithin Naubad 1 May 12, 2022
Codegeneration tool for isomorphic server and mobile Go apps with gRPC & Protobuf. Share code between your backend, Android & iOS app! :sun_with_face:

Anakin Codegeneration tool for isomorphic server and mobile Go apps with gRPC & Protobuf. Share code between your backend, Android & iOS app! Descript

Kirill Biakov 17 Jun 25, 2020
andle is an Android tool help you sync dependencies, sdk or build tool version.

andle andle is an Android tool to help you sync dependencies, SDK or build tool version. Installation Simple install by pip: $ sudo pip install andle

Jintin 58 Sep 17, 2022