Quantcast
Channel: Active questions tagged react-native+android - Stack Overflow
Viewing all 28480 articles
Browse latest View live

Problem with Handling different screen sizes in Android-React native

$
0
0

I'm a bit confused with handling different size of screens for app.

in android there is a unit named dp that seems to handle screen size and resolution variation. i expect when i use this unit instead of pixels, i see same size component(like button, ...) in every screen. e.g a button with size 20dp must look same size in all screens.

in articles i read that React-Native uses dp as its main unit as well. so expected the same thing here, but it's not working as i expected. a button with 20dp aren't looking the same in different screens.

also there are articles in which they show how to handle different screen sizes, although they say RN using dp they use some arithmetic logic to scale their components to each screen size.

e.g const scaleX = Dimension.getWidth() / baseWdith=> simplified code

the flow is that, we make a UI with an specific base screen and make it look how we want it to be, and then we scale components later in new screens.

my question is that isn't dp unit supposed to do the same thing!? why RN didn't handle autoscaling itself? if there is sth named dp to manage screen sizes-ratio then why they doing manual scaling?


Android App crashes on OneSignal push notification

$
0
0

I developed a React Native app that crashes every time a push notification from OneSignal is received while the app is active.

The error is java.lang.NoSuchMethodError: No static method zzc.

If I receive the notification when the app is on background, there is no problem.

Here is my build.gradle file:

buildscript {
    ext {
        googlePlayServicesLocationVersion = "17.0.0"
        buildToolsVersion = "28.0.3"
        minSdkVersion = 21
        compileSdkVersion = 28
        targetSdkVersion = 28
        supportLibVersion = "28.0.0"
        appCompatVersion = "1.0.2"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
    }
}

allprojects {
    repositories {

        configurations.all {
            resolutionStrategy.eachDependency { DependencyResolveDetails details ->
            def requested = details.requested
           if (requested.group == 'com.google.android.gms') {
              details.useVersion '17.0.0'
           }
           if (requested.group == 'com.google.firebase') {
              details.useVersion '17.0.0'
             }
           }
         }
        google()
        mavenLocal()

        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }

        maven {
           url "$rootDir/../node_modules/react-native-background-geolocation/android/libs"
        }

            maven {
                url "$rootDir/../node_modules/react-native-background-fetch/android/libs"
            }
    }
}


task wrapper(type: Wrapper) {
    gradleVersion = '4.10'
    distributionUrl = distributionUrl.replace("bin", "all")
}

And my app/build.gradle file:

apply plugin: "com.android.application"

import com.android.build.OutputFile

project.ext.react = [
    entryFile: "index.js"
]

apply from: '../../node_modules/react-native-unimodules/gradle.groovy'
apply from: "../../node_modules/react-native/react.gradle"

Project background_geolocation = project(':react-native-background-geolocation')
apply from: "${background_geolocation.projectDir}/app.gradle"


def enableSeparateBuildPerCPUArchitecture = false

def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "XXX"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 200
        versionName "24.10"
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
                storeFile file(MYAPP_UPLOAD_STORE_FILE)
                storePassword MYAPP_UPLOAD_STORE_PASSWORD
                keyAlias MYAPP_UPLOAD_KEY_ALIAS
                keyPassword MYAPP_UPLOAD_KEY_PASSWORD
            }
        }
    }
    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation project(':@react-native-community_netinfo')
    implementation project(':react-native-fast-image')
    implementation project(':react-native-device-info')
    implementation project(':react-native-orientation-locker')
    implementation project(':@react-native-community_slider')
    implementation project(':react-native-webview')
    implementation project(':react-native-splash-screen')
    implementation project(':@react-native-community_async-storage')
    implementation project(':react-native-sentry')
    implementation project(':react-native-background-fetch')
    implementation project(':react-native-maps')
    implementation project(':react-native-iap')
    implementation project(':react-native-gesture-handler')
    implementation project(':react-native-background-geolocation')
    implementation project(':react-native-webrtc')
    implementation project(':react-native-svg')
    implementation project(':react-native-onesignal')
    implementation project(':react-native-incall-manager')
    implementation project(':react-native-fs')
    implementation project(':react-native-reanimated')
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.facebook.fresco:animated-gif:1.10.0'
    implementation "com.facebook.fresco:animated-base-support:1.3.0"
    addUnimodulesDependencies()
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

// [Added by react-native-background-geolocation] Purge debug sounds from release build.
def purgeBackgroundGeolocationDebugResources(applicationVariants) {
    if ((rootProject.ext.has("removeBackgroundGeolocationDebugSoundsInRelease")) && (rootProject.ext.removeBackgroundGeolocationDebugSoundsInRelease == false)) return
    applicationVariants.all { variant ->
        if (variant.buildType.name == "release") {
            println("[react-native-background-geolocation] Purging debug resources in release build")
            variant.mergeResources.doLast {
                delete(fileTree(dir: variant.mergeResources.outputDir, includes: ["raw_tslocationmanager*"]))
            }
        }
    }
}

Do you know where the problem could come from?

React Native: Packae com.reactnativenavigation.react doesn't exist

$
0
0

I am new to react native and trying to install react navigation library using the instruction give here https://wix.github.io/react-native-navigation/#/docs/Installing?id=android. after completing the final steps when i am doing react-native run-android that time i am getting below error.can someone help me in resolving below error. i am stuck with this issue from last two days

Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainActivity.java:3: error: package com.reactnativenavigation does not exist
import com.reactnativenavigation.NavigationActivity;
                                ^
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainActivity.java:5: error: cannot find symbol
public class MainActivity extends NavigationActivity {
                                  ^
  symbol: class NavigationActivity
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:13: error: package com.reactnativenavigation does not exist
import com.reactnativenavigation.NavigationApplication;
                                ^
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:14: error: package com.reactnativenavigation.react does not exist
import com.reactnativenavigation.react.NavigationReactNativeHost;
                                      ^
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:15: error: package com.reactnativenavigation.react does not exist
import com.reactnativenavigation.react.ReactGateway;
                                      ^
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:19: error: cannot find symbol
public class MainApplication extends NavigationApplication {
                                     ^
  symbol: class NavigationApplication
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:21: error: cannot find symbol
    protected ReactGateway createReactGateway() {
              ^
  symbol:   class ReactGateway
  location: class MainApplication
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:20: error: method does not override or implement a method from a supertype
    @Override
    ^
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:22: error: cannot find symbol
        ReactNativeHost host = new NavigationReactNativeHost(this, isDebug(), createAdditionalReactPackages()) {
                                   ^
  symbol:   class NavigationReactNativeHost
  location: class MainApplication
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:23: error: method does not override or implement a method from a supertype
            @Override
            ^
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:28: error: cannot find symbol
        return new ReactGateway(this, isDebug(), host);
                   ^
  symbol:   class ReactGateway
  location: class MainApplication
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:31: error: method does not override or implement a method from a supertype
    @Override
    ^
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:39: error: cannot find symbol
        return Arrays.<ReactPackage>asList(
               ^
  symbol:   variable Arrays
  location: class MainApplication
/home/sanjay/Desktop/ToDo/android/app/src/main/java/com/todo/MainApplication.java:44: error: method does not override or implement a method from a supertype
    @Override
    ^
14 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.

Below is my setting.graddle file

rootProject.name = 'ToDo'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
include ':react-native-navigation'
project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/lib/android/app/')

build.graddle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "28.0.3"
        minSdkVersion = 19
        compileSdkVersion = 28
        targetSdkVersion = 28
        //googlePlayServicesVersion   = "12.0.1"
        supportLibVersion = "28.0.3"
    }
    repositories {
        google()
        mavenLocal()
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:3.4.2")

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }

        maven { url 'https://jitpack.io' }
    }
}

subprojects { subproject ->
    afterEvaluate {
        if ((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
            android {
                variantFilter { variant ->
                    def names = variant.flavors*.name
                    if (names.contains("reactNative51") || names.contains("reactNative55") || names.contains("reactNative56") || names.contains("reactNative57") || names.contains("reactNative57_5")) {
                       setIgnore(true)
                    }
                }
            }
        }
    }
}

app/build.graddle

apply plugin: "com.android.application"

import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation
 *   entryFile: "index.android.js",
 *
 *   // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
 *   bundleCommand: "ram-bundle",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
 *   // whether to disable dev mode in custom build variants (by default only disabled in release)
 *   // for example: to disable dev mode in the staging build type (if configured)
 *   devDisabledInStaging: true,
 *   // The configuration property can be in the following formats
 *   //         'devDisabledIn${productFlavor}${buildType}'
 *   //         'devDisabledIn${buildType}'
 *
 *   // the root of your project, i.e. where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
 *   nodeExecutableAndArgs: ["node"],
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

project.ext.react = [
    entryFile: "index.js",
    enableHermes: false,  // clean and rebuild if changing
]

apply from: "../../node_modules/react-native/react.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

/**
 * The preferred build flavor of JavaScriptCore.
 *
 * For example, to use the international variant, you can use:
 * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
 *
 * The international variant includes ICU i18n library and necessary data
 * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
 * give correct results when using with locales other than en-US.  Note that
 * this variant is about 6MiB larger per architecture than default.
 */
def jscFlavor = 'org.webkit:android-jsc:+'

/**
 * Whether to enable the Hermes VM.
 *
 * This should be set on project.ext.react and mirrored here.  If it is not set
 * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
 * and the benefits of using Hermes will therefore be sharply reduced.
 */
def enableHermes = project.ext.react.get("enableHermes", false);

android {
    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "com.todo"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        missingDimensionStrategy "RNN.reactNativeVersion", "reactNative60" // See note below!
        versionCode 1
        versionName "1.0"
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            // Caution! In production, you need to generate your own keystore file.
            // see https://facebook.github.io/react-native/docs/signed-apk-android.
            signingConfig signingConfigs.debug
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // https://developer.android.com/studio/build/configure-apk-splits.html
            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }

        }
    }
}

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support'&& requested.name != 'multidex') {
            details.useVersion "${rootProject.ext.supportLibVersion}"
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.facebook.react:react-native:+"  // From node_modules
    implementation project(':react-native-navigation')
    implementation 'com.android.support:design:25.4.0'
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}



apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

How to build debug apk in react native

$
0
0

enter image description hereI want to build unsigned apk or debug apk. My application is successfully running on localhost. I have tried different methods. But it shows the error. I have got the answer from Here . when applying the command

 react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug

It showing the error is

Cannot find entry file index.android.js in any of the roots: ["D:\\workspace\\reactjs\\native\\myapp5"]

Then i have change index.android.js to App.js

Then it will showing the error is

ENOENT: no such file or directory, open 'D:\workspace\reactjs\native\myapp5\android\app\build\intermediates\assets\debug\index.android.bundle'

How to solve this problem? Please help me.

My react native versions are react-native-cli: 2.0.1 , react-native: 0.52.0 . Screenshot of my root folder i have posted.

when i run gradlew assembleDebug in android folder it showing the error.

enter image description here

Change package name for Android in React Native

$
0
0

I used react-native init MyApp to initialise a new React Native app. This created among others an Android project with the package com.myapp.

What's the best way to change this package name, for example to: com.mycompany.myapp?

I tried changing it in AndroidManifest.xml but it created other errors, so I'm assuming it's not the way.

Any idea?

Error prebuild react-native, build.gradle

$
0
0

When you first start the application, this error appears. I don't understand what it can be connected with.


FAILURE: Build failed with an exception.

* Where:
Build file 'C:\xxxx\android\app\build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.android.application']
   > Malformed \uxxxx encoding.

Layout Animation not working on Android (create() method)

$
0
0

I'm using LayoutAnimation for animating my <View>. I toggle it with:

LayoutAnimation.configureNext(LayoutAnimation.Presets.spring);
this.showView = !this.showView;

but the animation is not working at the moment of create, only when the View disappears. (iOS works perfectly)

How can I import java third party library via gradle to my React Native Project

$
0
0

What I'm trying to do is import a third party java library via gradle to my React-Native (0.60) fresh project. so then I can access the dependency by creating module;

to be specific this package https://github.com/sannies/mp4parser

I have already tried and added the implementation "org.mp4parser:isoparser:1.9.27" at android/app/build.gradle file. but many of classes not able to access when I'm trying to do.

Check the error log

On build these not found error throwing

error: package org.mp4parser.muxer does not exist import org.mp4parser.muxer.FileDataSourceImpl;
error: package org.mp4parser.muxer does not exist import org.mp4parser.muxer.Movie;
error: package org.mp4parser.muxer does not exist import org.mp4parser.muxer.Track;

What can I do? I would like to know the proper way or if I'm doing anything wrong. Please help me guys.


Can we get face-id in react native for Android devices?

$
0
0

I was implementing biometrics in my app for authentication. I am using react-native biometrics for it. Every things working good just one stucked. Face-id is not working in Android. I did a lot of googling but unable to find some satisfactory answer. Is it even possible to use face-id in Android?

Biometrics.isSensorAvailable()
  .then((biometryType) => {
    if (biometryType === Biometrics.TouchID) {
      console.log('TouchID is supported')
    } else if (biometryType === Biometrics.FaceID) {
      console.log('FaceID is supported')
    } else {
      console.log('Biometrics not supported')
    }
  })  

This always return me TouchId even if I am using FaceId in my phone. Thank for help in advance.

Expo React native app doesn´t work standalone when run as stand alone apk

$
0
0

My expo app works fine with "expo start" in a real android device, but when the apk generated with "expo build:android -t apk" is installed in the android real device, the app crashes and output this error:

java.lang.RuntimeException: Expo encountered a fatal error: ReferenceError: ReferenceError: Can't find variable: AbortController

This error is located at: in n in p in RCTView in u in RCTView in u in n in o in E in RCTView in n in RCTView in u in PanGestureHandler in n in L in RCTView i at host.exp.exponent.experience.a$2.run(BaseExperienceActivity.java:197) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:201) at android.app.ActivityThread.main(ActivityThread.java:6810) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

Please help me!

Cannot connect to Apollo GraphQL server on Android Release [react native]

$
0
0
    httpURI = 'http://17.25.16.68:4000/graphql' //example
    const httpLink = createHttpLink({ uri: httpURI });
    const client = new ApolloClient({ link:httpLink, cache: new InMemoryCache() });

The connection works on debug mode, but when I run it on release, no connection is made.

Do I need to enable outgoing connections somewhere in the Android release config?

RNFetchBlob can not download apk, But in the Browser the url can dowload file

$
0
0

I develop a react-native app, for android, I use the RNFetchBlob to download the APK. and in android, RNFetchBlob uses OkHttp library to download the file. But the APK can not download. when I put the link in android, it can download the file successfully.

I try to replace it us the other URL, RNFetchBlob can download the file.

But my URL is a simple url: http://host:port/AppDownLoad/publish/some.apk

the RNFetchBlob config is the below:

 RNFetchBlob.config({
      path: dirs.DCIMDir + "/Some.apk",
      timeout:180000, //超时三分钟
    })
      .fetch("GET", APK_URL)
      .progress({ count: 10 }, (received, total) => {
        let currentProgress = received / total;
      })
      .then(res => {

        if(res.respInfo.timeout){
          Linking.openURL(APKURL)
          return;
        }
        android.actionViewIntent(
         res.path(),
        "application/vnd.android.package-archive"
        );
      })
      .catch(error => {
        console.log(error); 
        // Linking.openURL(APKURL)
      });

the third library OkHttp source code is:

OkHttpClient.Builder clientBuilder;
if (this.options.trusty) {
                clientBuilder = RNFetchBlobUtils.getUnsafeOkHttpClient(client);
            } else {
                clientBuilder = client.newBuilder();
            }

            final Request.Builder builder = new Request.Builder();
            try {
                builder.url(new URL(url));
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
            builder.method("GET", null);
            final Request req = builder.build();
            clientBuilder.connectionPool(pool);
            clientBuilder.retryOnConnectionFailure(false);
            clientBuilder.followRedirects(options.followRedirect);
            clientBuilder.followSslRedirects(options.followRedirect);
            clientBuilder.retryOnConnectionFailure(true);

            OkHttpClient client = enableTls12OnPreLollipop(clientBuilder).build();

            Call call =  client.newCall(req);
            taskTable.put(taskId, call);
            call.enqueue(new okhttp3.Callback(),{callback}


Could anyone tell me why?

How to disconnect from a WiFi and connect to a wifi whose SSID and password is available?

react-native android app crashes with in release apk

$
0
0

I have written one hybrid app which is using react-native-svg to render svg images in react-native views. Everything works perfectly. Today, When I created release apk for my app and deployed it to an emulator it crashed with an error:

E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
Process: com.example.packagname, PID: 8574
java.lang.IllegalStateException: java.lang.NoSuchFieldException: mFill
  at com.horcrux.svg.q.a(Unknown Source:78)
at com.horcrux.svg.i$1.a(Unknown Source:9)
at com.horcrux.svg.aa.a(Unknown Source:22)
at com.horcrux.svg.i.b(Unknown Source:14)
at com.horcrux.svg.i.a(Unknown Source:10)
at com.horcrux.svg.t.a(Unknown Source:104)
at com.horcrux.svg.t.c(Unknown Source:25)
at com.horcrux.svg.t.a(Unknown Source:7)
at com.facebook.react.uimanager.u.a(Unknown Source:5)
at com.facebook.react.uimanager.ag.a(Unknown Source:56)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.a(Unknown Source:34)
at com.facebook.react.uimanager.ag.d(Unknown Source:83)
at com.facebook.react.uimanager.ag.e(Unknown Source:17)
at com.facebook.react.uimanager.UIManagerModule.onBatchComplete(Unknown Source:27)
at com.facebook.react.bridge.z.d(Unknown Source:30)
at com.facebook.react.bridge.CatalystInstanceImpl$a.onBatchComplete(Unknown Source:14)
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at com.facebook.react.bridge.queue.a.dispatchMessage(Unknown Source:0)
at android.os.Looper.loop(Looper.java:164)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(Unknown Source:16)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.NoSuchFieldException: mFill
at java.lang.Class.getField(Class.java:1601)
at com.horcrux.svg.q.a(Unknown Source:41)
at com.horcrux.svg.i$1.a(Unknown Source:9) 
at com.horcrux.svg.aa.a(Unknown Source:22) 
at com.horcrux.svg.i.b(Unknown Source:14) 
at com.horcrux.svg.i.a(Unknown Source:10) 
at com.horcrux.svg.t.a(Unknown Source:104) 
at com.horcrux.svg.t.c(Unknown Source:25) 
at com.horcrux.svg.t.a(Unknown Source:7) 
at com.facebook.react.uimanager.u.a(Unknown Source:5) 
at com.facebook.react.uimanager.ag.a(Unknown Source:56) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.a(Unknown Source:34) 
at com.facebook.react.uimanager.ag.d(Unknown Source:83) 
at com.facebook.react.uimanager.ag.e(Unknown Source:17) 
at com.facebook.react.uimanager.UIManagerModule.onBatchComplete(Unknown Source:27) 
at com.facebook.react.bridge.z.d(Unknown Source:30) 
at com.facebook.react.bridge.CatalystInstanceImpl$a.onBatchComplete(Unknown Source:14) 
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) 
at android.os.Handler.handleCallback(Handler.java:789) 
at android.os.Handler.dispatchMessage(Handler.java:98) 
at com.facebook.react.bridge.queue.a.dispatchMessage(Unknown Source:0) 
at android.os.Looper.loop(Looper.java:164) 
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(Unknown Source:16) 
at java.lang.Thread.run(Thread.java:764) 

I see this problem only when I comment -dontobfuscate from the proguard-rule.pro file. I want to obfuscate my apk code(I can't control it.). I am using proguard file similar to the one shown in this example, https://github.com/magicismight/react-native-svg-example/blob/cfb788461efae0de367c97aadcc829cdeb959a8d/android/app/proguard-rules.pro

Has anyone else faced this issue? Any suggestion on , how can I stop my app from crashing without enabling -dontobfuscate in proguard-rules file?

Edit I am pretty new to android development and I am trying proguard for the first time. Any positive suggestions on how to debug such issues will be really helpful.

react native android oauth2

$
0
0

I am developing a react-native application, in this application im trying to authenticating using oauth2. Now im trying to use a webview to retrieve my redirect_uri credentials, but im unsure how to retrieve it in react-native on a Android device.

I have found a example but it doessnt explain how to get the acces token in a variable, and I dont know how to implement this inside react-native.

for this purpose I am trying to use a implicit flow.

Grant Type: Implicit The implicit grant type is used for mobile apps and web applications (i.e. applications that run in a web browser), where the client secret confidentiality is not guaranteed. The implicit grant type is also a redirection-based flow but the access token is given to the user-agent to forward to the application, so it may be exposed to the user and other applications on the user's device. Also, this flow does not authenticate the identity of the application, and relies on the redirect URI (that was registered with the service) to serve this purpose.

The implicit grant type does not support refresh tokens. The implicit grant flow basically works as follows: the user is asked to authorize the application, then the authorization server passes the access token back to the user-agent, which passes it to the application. If you are curious about the details, read on. https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2

Integrate oauth2 with native (iOS/Android) mobile application

My question is what should my redirect_uri be? How can I retrieve the variables on react-native Android? Is 'implicit flow' the way to use on a mobile application?


Cache image on react native

$
0
0

Is there a good library or maybe some default react native components that cache the image from a url? I've tried react-native-cache-image but there are a lot of issues with react-native-fs and react-native-sqlite-storage and as I am new to react native I dont know how to fix them properly.

toLocaleString() is not working in Android for React Native

$
0
0

I am trying to do some date format in my application.

Suppose I am getting date stamp like "1573457092953.63" And I am trying to do like below format.

"11/11/2019, 1:17:00 PM"

So, I have used date.toLocaleString()

It is working fine in iOS, But, Getting issue in Android.

In iOS getting like 11/11/2019, 1:17:00 PM
Android getting like Mon Nov 11 1:17:00

How to fix this, Even I did not get anything from other forums.

Any suggestions?

React native Android App wont't build and displays the following error

$
0
0

Screenshot Real Device

  • One Plus 6
  • Oxygen OS

My app/build.gradle

apply plugin: "com.android.application"

import com.android.build.OutputFile

project.ext.react = [
    entryFile: "index.js",
    bundleInRelease: true,
    enableHermes: true,
]

apply from: "../../node_modules/react-native/react.gradle"

def enableSeparateBuildPerCPUArchitecture = true

def enableProguardInReleaseBuilds = true

def jscFlavor = 'org.webkit:android-jsc:+'

def enableHermes = project.ext.react.get("enableHermes", false);

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions { 
        checkReleaseBuilds false
    }

    defaultConfig {
        applicationId "com.****.**"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 206
        versionName "2.1"
        multiDexEnabled true
        missingDimensionStrategy 'react-native-camera', 'general'

    }

    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }

    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {            
            // minifyEnabled true
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
            // shrinkResources true
            zipAlignEnabled true
            useProguard enableProguardInReleaseBuilds
        }

        // applicationVariants are e.g. debug, release
        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                // For each separate APK per architecture, set a unique version code as described here:
                // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
                def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
                def abi = output.getFilter(OutputFile.ABI)
                if (abi != null) {  // null for the universal-debug, universal-release variants
                    output.versionCodeOverride =
                            versionCodes.get(abi) * 1048600 + defaultConfig.versionCode
                }
            }
        }
    }

    packagingOptions {
        pickFirst '**/armeabi-v7a/libc++_shared.so'
        pickFirst '**/x86/libc++_shared.so'
        pickFirst '**/arm64-v8a/libc++_shared.so'
        pickFirst '**/x86_64/libc++_shared.so'
        pickFirst '**/x86/libjsc.so'
        pickFirst '**/armeabi-v7a/libjsc.so'        
    }

}

dependencies {
    implementation project(':react-native-splash-screen')
    implementation project(':@react-native-community_async-storage')
    implementation project(':react-native-gesture-handler')
    implementation project(':@react-native-community_netinfo')
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.annotation:annotation:1.0.2'
    implementation fileTree(include: ['*.jar'], dir: 'libs')   
    implementation 'com.facebook.react:react-native:+'
    implementation 'com.android.support:multidex:1.0.1'

    // JSC from node_modules
   if (enableHermes) {
      def hermesPath = "../../node_modules/hermesvm/android/";
      debugImplementation files(hermesPath + "hermes-debug.aar")
      releaseImplementation files(hermesPath + "hermes-release.aar")    
    } else {
        implementation jscFlavor
    }

    // From node_modules
    implementation 'com.google.android.gms:play-services-auth-api-phone:16.0.0'
    implementation 'com.google.android.gms:play-services-identity:16.0.0'
    implementation 'com.google.android.gms:play-services-auth:16.0.0'
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'com.android.volley:volley:1.1.1'
    implementation 'com.google.code.gson:gson:2.8.5'
    // Firebase dependencies
    implementation project(':react-native-firebase')
    implementation "com.google.android.gms:play-services-base:17.0.0"

    implementation "com.google.firebase:firebase-core:17.0.0"
    implementation "com.google.firebase:firebase-messaging:19.0.0"

    implementation project(':@mauron85_react-native-background-geolocation')
    implementation(project(':react-native-maps')){
       exclude group: 'com.google.android.gms', module: 'play-services-base'
       exclude group: 'com.google.android.gms', module: 'play-services-maps'
   }

}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

apply plugin: 'com.google.gms.google-services'
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

My Top Level build.gradle file


buildscript {
    ext {
        buildToolsVersion = "28.0.3"
        minSdkVersion = 16
        compileSdkVersion = 28
        targetSdkVersion = 28
        supportLibVersion = "28.0.0"
        googlePlayServicesVersion = "11+"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:3.4.1")
        classpath 'com.google.gms:google-services:4.2.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        google()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url ("$rootDir/../node_modules/react-native/android")            
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }

    }
}

/*
To resolve the gradle dependency issue
*/
subprojects {
    afterEvaluate {
        project ->
            if (project.hasProperty("android")) {
            android {
            compileSdkVersion = 28
            buildToolsVersion = "28.0.3"
            }
        }
    }
}
subprojects {
  project.configurations.all {
     resolutionStrategy.eachDependency { details ->
        if (details.requested.group == 'com.android.support'&& !details.requested.name.contains('multidex') ) {
           details.useVersion "28.0.3"
        }
     }
  }
}

My package.json dependencies

"dependencies": {
    "@mauron85/react-native-background-geolocation": "^0.6.3",
    "@react-native-community/async-storage": "^1.5.1",
    "@react-native-community/geolocation": "^2.0.2",
    "@react-native-community/netinfo": "^3.2.1",
    "@types/react-native-vector-icons": "^6.4.2",
    "@typescript-eslint/eslint-plugin": "^2.2.0",
    "@typescript-eslint/parser": "^2.2.0",
    "buffer": "^5.2.1",
    "d3-shape": "^1.3.5",
    "deepmerge": "^3.2.0",
    "lottie-react-native": "^3.1.0",
    "moment": "^2.24.0",
    "object-path": "^0.11.4",
    "prop-types": "^15.7.2",
    "query-string": "^6.5.0",
    "react": "16.8.6",
    "react-native": "0.60.5",
    "react-native-android-location-services-dialog-box": "^2.8.2",
    "react-native-camera": "^3.0.0",
    "react-native-cli": "^2.0.1",
    "react-native-copilot": "^2.4.5",
    "react-native-datepicker": "^1.7.2",
    "react-native-device-info": "1.6.1",
    "react-native-document-picker": "^2.2.0",
    "react-native-elements": "^1.1.0",
    "react-native-exit-app": "^1.0.0",
    "react-native-fetch-blob": "^0.10.8",
    "react-native-firebase": "~5.5.6",
    "react-native-fs": "^2.13.3",
    "react-native-gesture-handler": "^1.3.0",
    "react-native-google-signin": "^2.0.0",
    "react-native-image-picker": "^0.28.0",
    "react-native-image-resizer": "^1.0.1",
    "react-native-image-zoom-viewer": "^2.2.25",
    "react-native-linear-gradient": "^2.5.4",
    "react-native-loader": "^1.2.1",
    "react-native-loading-spinner-overlay": "^1.0.1",
    "react-native-maps": "^0.26.1",
    "react-native-material-dropdown": "^0.11.1",
    "react-native-permissions": "^1.1.1",
    "react-native-picker-select": "^6.1.0",
    "react-native-privacy-snapshot": "^1.0.0",
    "react-native-qrcode-scanner": "^1.2.1",
    "react-native-shared-preferences": "^1.0.0",
    "react-native-simple-toast": "0.0.8",
    "react-native-snackbar": "^2.0.2",
    "react-native-splash-screen": "^3.2.0",
    "react-native-svg": "^9.4.0",
    "react-native-user-defaults": "^0.1.5",
    "react-native-vector-icons": "^6.6.0",
    "react-native-webview": "^5.12.1",
    "react-redux": "^5.0.6",
    "react-roka-components": "^1.0.1",
    "redux": "^3.0.0",
    "redux-devtools-extension": "^2.13.8",
    "redux-form": "^7.4.2",
    "url": "^0.11.0",
    "url-parse": "^1.4.7",
    "uuid": "^3.3.2",
    "whatwg-fetch": "^2.0.4"
  },

Steps taken to resolve :

Tried using the same version of dependencies (17.0.0) for "com.google.firebase:firebase-core" and "com.google.firebase:firebase-messaging" as suggested in the below link.

No class Def Error: java.lang.NoClassDefFoundError: Failed resolution Failed resolution of: Lcom/google/android/gms/common/internal/zzab;

But the gradle build failed with the following error

CONFIGURE FAILED in 1m 0s In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[16.0.0]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: com.google.firebase:firebase-messaging:17.0.0 -> com.google.firebase:firebase-iid@[16.0.0], but firebase-iid version was 19.0.0.

The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the artifact with the issue.

-- Project 'app' depends onto com.google.firebase:firebase-messaging@{strictly 17.0.0}

-- Project 'app' depends onto com.google.firebase:firebase-iid@{strictly 19.0.0}

React Native release apk doesn't match app when running react-native run-android

$
0
0

I'm currently building my first React Native app. I set up a release in Play Console for Internal Testing and was able to push my first signed apk. Since then, we've made bug fixes that are now merged into master. When I try to generate a new release by running:

cd android && ./gradlew assembleRelease

and upload as a new release, I don't see any of the new changes after updating my app via the Play Store.

I've tried running

react-native bundle --entry-file ./index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

before generating a new release, but I still don't see the changes.

Running react-native run-android while my device is hooked up with USB Debugging works fine, as well as in any emulator. I just can't figure out why my APK doesn't match the code generated on my local device.

Is there a step that I'm missing that's keeping my APK from representing the latest changes on master when I build?

Using React Native 0.56

Updated to add my Gradle Config:

 // android/app/build.grade
 signingConfigs {
    release {
        if(project.hasProperty('MY_RELEASE_STORE_FILE')) {
            storeFile file(MY_RELEASE_STORE_FILE)
            storePassword pass
            keyAlias MY_RELEASE_KEY_ALIAS
            keyPassword pass
        }
    }
}

How to resolve duplicate class exception caused by com.google.firebase:firebase-ml-vision:24.0.0

$
0
0

While setting up the Text Recognizer for MLKit on Android for a react-native project (following this tutorial: https://firebase.google.com/docs/ml-kit/android/recognize-text?authuser=0) I face an exception when launching the application with the react-native run-android command in my terminal.

It states I have duplicate classes and I tracked it down to when I add implementation 'com.google.firebase:firebase-ml-vision:24.0.0' to the app/build.gradle

Has anyone faced this before and resolved it? If I remove that line and change line 134 of android/app/build Gradle back to 'general' from 'mlkit' I can run my react-native-camera module but I cannot interface with the MLKit text recognizer.

Exception:

Execution failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class com.google.android.gms.internal.vision.zzbm found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzck found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzcl found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzcm found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzjx found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzjy found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzjz found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzka found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzkb found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzkc found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzkd found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzke found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzkg found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
  Duplicate class com.google.android.gms.internal.vision.zzl found in modules classes.jar (com.google.android.gms:play-services-vision-common:19.0.0) and classes.jar (com.google.firebase:firebase-ml-vision-face-model:17.0.2)
Viewing all 28480 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>