kandi background

RxAndroid | RxJava bindings for Android | Reactive Programming library

Download this library from

kandi X-RAY | RxAndroid Summary

RxAndroid is a Java library typically used in Programming Style, Reactive Programming applications. RxAndroid has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has medium support. You can download it from GitHub, Maven.
Android specific bindings for RxJava 3. This module adds the minimum classes to RxJava that make writing reactive components in Android applications easy and hassle-free. More specifically, it provides a Scheduler that schedules on the main thread or any given Looper.

kandi-support Support

  • RxAndroid has a medium active ecosystem.
  • It has 19428 star(s) with 2999 fork(s). There are 1031 watchers for this library.
  • It had no major release in the last 12 months.
  • There are 1 open issues and 340 have been closed. On average issues are closed in 24 days. There are 1 open pull requests and 0 closed requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of RxAndroid is 3.0.0

quality kandi Quality

  • RxAndroid has 0 bugs and 0 code smells.

securitySecurity

  • RxAndroid has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • RxAndroid code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.

license License

  • RxAndroid is licensed under the Apache-2.0 License. This license is Permissive.
  • Permissive licenses have the least restrictions, and you can use them in most projects.

buildReuse

  • RxAndroid releases are available to install and integrate.
  • Deployable package is available in Maven.
  • Build file is available. You can build the component from source.
  • Installation instructions, examples and code snippets are available.
  • RxAndroid saves you 590 person hours of effort in developing the same functionality from scratch.
  • It has 1376 lines of code, 105 functions and 18 files.
  • It has medium code complexity. Code complexity directly impacts maintainability of the code.
Top functions reviewed by kandi - BETA

kandi has reviewed RxAndroid and discovered the below as its top functions. This is intended to give you an instant insight into RxAndroid implemented functionality, and help decide if they suit your requirements.

  • Create a handler from a looper
  • On run scheduler example .
  • Requests that the given Callable is not null .
  • Executes a scheduler on main thread .
  • Disposes the Looper .
  • Sample observable .
  • Verifies that the main thread is used .
  • Create a worker .
  • Creates a scheduler from a looper .

RxAndroid Key Features

RxJava bindings for Android

RxAndroid Examples and Code Snippets

  • Binaries
  • Build
  • Observing on the main thread
  • Observing on arbitrary loopers
  • LICENSE
  • Manifest merger failed with multiple errors | Android 12 and higher are required to specify an explicit value for `android:exported`
  • SocketException: java.net.SocketException: socket is closed release build
  • Manifest merger failed : android:exported needs to be explicitly specified for <receiver>
  • Why does exoplayer 2.13.3 get downloaded, when I have included a dependency for exoplayer 2.8.4?
  • How to fix gradle which stopped working - error while syncing?
  • Failed to resolve transitive dependencies on JitPack release
  • InvocationTargetException with Android Studio Arctic Fox on M1 Apple silicon
  • Could not find android.arch.navigation:navigation-safe-args-gradle-plugin:2.3.5.?
  • Why my Data-Binding library does not working?
  • Resolve duplicated external libraries in Android Studio

Binaries

allprojects {
    repositories {
        maven { url "https://oss.jfrog.org/libs-snapshot" }
    }
}

dependencies {
    implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
    // Because RxAndroid releases are few and far between, it is recommended you also
    // explicitly depend on RxJava's latest version for bug fixes and new features.
    // (see https://github.com/ReactiveX/RxJava/releases for latest 3.x.x version)
    implementation 'io.reactivex.rxjava3:rxjava:3.0.0'
}

Community Discussions

Trending Discussions on RxAndroid
  • Firebase crashlytics not able to read crash reports
  • Manifest merger failed with multiple errors | Android 12 and higher are required to specify an explicit value for `android:exported`
  • Problem with using Android Room - Manifest merger failed
  • A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction?java.lang.reflect.Invocation?
  • SocketException: java.net.SocketException: socket is closed release build
  • ActivitySplitLayoutBinding is unresolved; what is the required library?
  • Manifest merger failed : android:exported needs to be explicitly specified for <receiver>
  • Why does exoplayer 2.13.3 get downloaded, when I have included a dependency for exoplayer 2.8.4?
  • How to fix gradle which stopped working - error while syncing?
  • Failed to resolve transitive dependencies on JitPack release
Trending Discussions on RxAndroid

QUESTION

Firebase crashlytics not able to read crash reports

Asked 2022-Apr-11 at 14:08

I have configured crashlytics as per Firebase Documentation https://firebase.google.com/docs/crashlytics/get-started?platform=android. But crash reports not generated and uploaded to server.

server

Kindly refer my build details.

Here is our project-level build.gradle

buildscript {
    
    repositories {
        google()
        jcenter()

        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
        classpath 'com.google.gms:google-services:4.3.10'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'

    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io'}
        maven{ url 'https://maven.google.com/' }
        mavenCentral()

        flatDir {
            dirs 'libs'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle(:app)

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

android {

    compileSdkVersion 28
    defaultConfig {
        applicationId "com.XXX.XXX"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 375
        versionName "2.25.1"

        multiDexEnabled true
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
        dataBinding {
            enabled = true
        }
        signingConfig signingConfigs.config
    }

    android {
        lintOptions {
            checkReleaseBuilds false
            abortOnError false
        }
    }

    flavorDimensions "appVariant", "projectCode"
    productFlavors {
        A {
            applicationId 'com.XXX.A'
            dimension "appVariant"
        }
        B {
            applicationId 'com.XXX.B'
            dimension "appVariant"
        }
        C {
            applicationId 'com.XXX.C'
            dimension "appVariant"
        }
        D {
            applicationId 'com.XXX.D'
            dimension "appVariant"
        }
        DEV {
            dimension "projectCode"
        }
        QA {
            dimension "projectCode"
        }
        LIVE {
            dimension "projectCode"
        }
        DEMO {
            dimension "projectCode"
        }
        BETA {
            dimension "projectCode"
        }
    }

    applicationVariants.all { variant ->
        variant.outputs.all { output ->
            def project = "XXX"
            def SEP = "_"
            def flavor = variant.productFlavors[0].name
            def projcode = variant.productFlavors[1].name
            def buildType = variant.buildType.name
            def buildTypeName = "";
            switch (buildType) {
                case "ABC": buildTypeName = SEP + "AB"; break;
                case "XYZ": buildTypeName = SEP + "XY"; break;
                default:
                    buildTypeName = "";
            }

            def version = variant.versionName
            def newApkName = project + buildTypeName + SEP + flavor + SEP + projcode + SEP + version + ".apk"

            outputFileName = new File(newApkName)
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    buildTypes {
        debug {

            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            buildConfigField "String", "AREA", "\"\""
        }
        
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            buildConfigField "String", "AREA", "\"\""
        }
        ABC {
            signingConfig signingConfigs.config
            minifyEnabled false
            buildConfigField "String", "AREA", "\"_A\""
        }
        XYZ {
            signingConfig signingConfigs.config
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            buildConfigField "String", "AREA", "\"_X\""
        }
    }
    
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }
}

repositories {

    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }

}

dependencies {
    def room_version = "1.1.1"
    def lifecycle_version = "1.1.1"
    def work_version = "1.0.0-beta01"
    implementation files('libs/commons-net-3.3.jar')
    implementation files('libs/httpclient-4.3.4.jar')
    implementation files('libs/httpcore-4.3.2.jar')
    implementation files('libs/httpmime-4.3.4.jar')
    implementation files('libs/silipmlib.jar')
    implementation files('libs/HyperLogLib8.jar')
    
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:29.3.0')
    
    implementation 'com.google.firebase:firebase-crashlytics'
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-messaging'

    //dependency for Workmanager
    implementation 'androidx.work:work-runtime:2.0.1'

    //dependencies for Room database
    implementation 'androidx.room:room-runtime:2.0.0'
    //noinspection GradleCompatible
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    annotationProcessor 'androidx.room:room-compiler:2.0.0'
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.0.0'
    //dependency for custom progress dialog

    //dependency for retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    implementation 'com.google.code.gson:gson:2.8.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'

    //dependency for joda time for date time calculation
    implementation 'joda-time:joda-time:2.10'

    //dependency for glide
    implementation 'com.github.bumptech.glide:glide:3.7.0'

    //dependency for custom toast
    implementation 'com.valdesekamdem.library:md-toast:0.9.0'

    //dependency for marshmallow permission - dexter library
    implementation 'com.karumi:dexter:4.2.0'

    // ViewModel and LiveData
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
    annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.0.0'

    // alternately - if using Java8, use the following instead of compiler
    implementation 'androidx.lifecycle:lifecycle-common-java8:2.0.0'

    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
    implementation project(':floatingmenu')
    implementation project(':html2bitmap')
    debugImplementation 'com.amitshekhar.android:debug-db:1.0.4'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
    implementation 'com.github.vipulasri:timelineview:1.0.6'
    implementation 'me.relex:circleindicator:1.2.2@aar'
    implementation 'com.haozhang.libary:android-slanted-textview:1.2'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    implementation 'com.google.android.gms:play-services-location:15.0.1'

    // implementation 'com.google.android.gms:play-services-gcm:11.8.0'

    // implementation 'com.google.android.gms:play-services-ads:11.8.0'
    implementation('com.github.florent37:materialviewpager:1.2.3') {
        exclude group: 'com.android.support'
    }

    implementation 'com.orhanobut:dialogplus:1.11@aar'

    //  implementation 'me.dm7.barcodescanner:zbar:1.8.4'
    implementation 'me.dm7.barcodescanner:zxing:1.9'
    implementation 'com.journeyapps:zxing-android-embedded:2.3.0@aar'
    implementation 'com.journeyapps:zxing-android-legacy:2.3.0@aar'
    implementation 'com.journeyapps:zxing-android-integration:2.3.0@aar'
    implementation 'com.google.zxing:core:3.2.0'
    implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2'
    implementation 'com.github.siyamed:android-shape-imageview:0.9.+@aar'
    implementation files('libs/HyperLogLib8.jar')
    implementation project(':scandecode-release')
    implementation 'com.tt:whorlviewlibrary:1.0.3'
    implementation 'io.reactivex:rxandroid:1.2.1'
    implementation 'io.reactivex:rxjava:1.1.6'
    implementation 'com.jakewharton.rxbinding:rxbinding:0.4.0'
    implementation 'com.jakewharton.rxbinding:rxbinding-design:0.4.0'

    implementation 'org.apache.commons:commons-text:1.7'

    // these are for retrolambda and streams api
    implementation 'com.annimon:stream:1.1.2'

}

With initialisation:

FirebaseApp.initializeApp(this)
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true)

And manifest:

<meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="true" />

Here is the logcat for the Crashlytics/CrashTest crash:

2022-04-10 15:53:07.717 21310-21310/com.XXX.XXX E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.XXX.XXX, PID: 21310
    java.lang.RuntimeException: Test Crash
        at com.XXX.XXX.UI.HomeActivity$1.onClick(HomeActivity.java:345)
        at android.view.View.performClick(View.java:6392)
        at android.view.View$PerformClick.run(View.java:25133)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:198)
        at android.app.ActivityThread.main(ActivityThread.java:7055)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:523)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)

This is the log that we receive when app relaunched after crash.

D:\user\Android Projects\XXX>adb logcat -s FirebaseCrashlytics
--------- beginning of main
--------- beginning of system
--------- beginning of crash
04-10 15:54:56.911 22018 22018 I FirebaseCrashlytics: Initializing Firebase Crashlytics 18.2.9 for com.XXX.XXX
04-10 15:54:56.926 22018 22018 D FirebaseCrashlytics: Crashlytics automatic data collection ENABLED by API.
04-10 15:54:56.940 22018 22018 D FirebaseCrashlytics: AnalyticsConnector now available.
04-10 15:54:56.943 22018 22018 D FirebaseCrashlytics: Registered Firebase Analytics listener.
04-10 15:54:56.948 22018 22018 D FirebaseCrashlytics: Mapping file ID is: 00000000000000000000000000000000
04-10 15:54:56.958 22018 22018 D FirebaseCrashlytics: Checking for cached settings...
04-10 15:54:56.992 22018 22018 D FirebaseCrashlytics: Loaded cached settings: {"settings_version":3,"cache_duration":86400,"features":{"collect_logged_exceptions":true,"collect_reports":
true,"collect_analytics":false,"prompt_enabled":false,"push_enabled":false,"firebase_crashlytics_enabled":false,"collect_anrs":true,"collect_metric_kit":false},"app":{"status":"activated
","update_required":false,"report_upload_variant":2,"native_report_upload_variant":2},"fabric":{"org_id":"62513aa60277ea5e0396d4ef","bundle_id":"com.XXX.XXX"},"on_demand_
upload_rate_per_minute":10,"on_demand_backoff_base":1.2,"on_demand_backoff_step_duration_seconds":60,"expires_at":1649666891559}
04-10 15:54:56.996 22018 22018 D FirebaseCrashlytics: Crashlytics automatic data collection ENABLED by API.
04-10 15:54:57.113 22018 22018 D FirebaseCrashlytics: Successfully configured exception handler.
04-10 15:54:57.116 22018 22049 D FirebaseCrashlytics: Opening a new session with ID 6252B07803E20001560228F94565CB5E
04-10 15:54:57.183 22018 22049 D FirebaseCrashlytics: Registered Firebase Analytics event receiver for breadcrumbs
04-10 15:54:58.013 22018 22018 D FirebaseCrashlytics: Crashlytics automatic data collection ENABLED by API.
04-10 15:54:58.642 22018 22018 D FirebaseCrashlytics: Crashlytics automatic data collection ENABLED by API.

These are set to false in cached settings:

"collect_analytics":false,
"firebase_crashlytics_enabled":false,

This setting was weird. Both of them are false for some reason though I never did turn them off explicitly. Never even played with these settings.

Not sure what is wrong. Any help will be appreciated.

ANSWER

Answered 2022-Apr-11 at 14:08

Solved!..
There was another utility logger library initialized in the application class that prevented crashlytics from collecting log. https://github.com/hypertrack/hyperlog-android

Also the initialization & manifest part is not necessary unless you want to explicitly enable/disable crashlytics working.

Source https://stackoverflow.com/questions/71815836

Community Discussions, Code Snippets contain sources that include Stack Exchange Network

Vulnerabilities

No vulnerabilities reported

Install RxAndroid

Additional binaries and dependency information for can be found at search.maven.org.
RxAndroid:
RxJava:
Further details on building can be found on the RxJava Getting Started page of the wiki.

Support

Since RxAndroid is part of the RxJava family the communication channels are similar:.

Build your Application

Share this kandi XRay Report