4

I am using react-native and currently started using redux and created one app but when I am running that app on the emulator it is working fine. Then I connected my mobile with android 6 through USB on that also it is working. But in other devices of Android 8 it is not working then I have changed targetSdkVersion to 28 then also it not working I am not getting what is the problem.

Following is my package.json

{
  "name": "Demo",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.6.3",
    "react-native": "^0.57.8",
    "react-native-flash-message": "^0.1.10",
    "react-native-linear-gradient": "^2.5.3",
    "react-native-modal-datetime-picker": "^6.0.0",
    "react-native-navigation": "^2.8.0",
    "react-native-tab-view": "^1.3.2",
    "react-native-vector-icons": "^6.2.0",
    "react-redux": "^6.0.1",
    "redux": "^4.0.1",
    "redux-thunk": "^2.3.0"
  },
  "devDependencies": {
    "babel-core": "^7.0.0-bridge.0",
    "babel-jest": "24.0.0",
    "jest": "24.0.0",
    "metro-react-native-babel-preset": "0.51.1",
    "react-test-renderer": "16.6.3"
  },
  "jest": {
    "preset": "react-native"
  }
}

android/build.gradle

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

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

allprojects {
    repositories {
        google()
        mavenCentral()
        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' }
    }
}


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

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")) {
                        setIgnore(true)
                    }
                }
            }
        }
    }
}

I am not getting where is the problem. Thanks in advance

1

2 Answers 2

7

From the logs that Ahtesham Shah provided in the above chat.

2019-02-26 21:14:08.898 18689-18732/com.namaztiming E/SoLoader: couldn't find DSO to load: libglog_init.so caused by: couldn't find DSO to load: libglog.so caused by: couldn't find DSO to load: libgnustl_shared.so caused by: dlopen failed: "/data/data/com.namaztiming/lib-main/libgnustl_shared.so" is 32-bit instead of 64-bit 
2019-02-26 21:14:08.898 18689-18732/com.namaztiming E/SoLoader: couldn't find DSO to load: libreactnativejni.so caused by: couldn't find DSO to load: libglog_init.so caused by: couldn't find DSO to load: libglog.so caused by: couldn't find DSO to load: libgnustl_shared.so caused by: dlopen failed: "/data/data/com.namaztiming/lib-main/libgnustl_shared.so" is 32-bit instead of 64-bit 
2019-02-26 21:14:08.901 18689-18732/com.namaztiming E/AndroidRuntime: FATAL EXCEPTION: Thread-8 
Process: com.namaztiming, PID: 18689 
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so caused by: couldn't find DSO to load: libglog_init.so caused by: couldn't find DSO to load: libglog.so caused by: couldn't find DSO to load: libgnustl_shared.so caused by: dlopen failed: "/data/data/com.namaztiming/lib-main/libgnustl_shared.so" is 32-bit instead of 64-bit 
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:703) 
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:564) 
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:500) 
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:455) 
at com.facebook.react.bridge.ReactBridge.staticInit(ReactBridge.java:18) 
at com.facebook.react.bridge.NativeMap.<clinit>(NativeMap.java:19) 
at com.facebook.react.bridge.JSCJavaScriptExecutorFactory.create(JSCJavaScriptExecutorFactory.java:21) 
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:917) 
at java.lang.Thread.run(Thread.java:784)

These suggest that the error is related to the following react-native issue. Where react-native doesn't support 64-bit on Android.

There is a solution to the problem that should be added to the app/build.gradle. The solution is to define the packaging options. This can be done like so.

android {
  ...
  // add the following packagingOptions 
  packagingOptions {
    pickFirst 'lib/x86_64/libjsc.so'
    pickFirst 'lib/arm64-v8a/libjsc.so'
  }
}

We also added the following to the defaultConfig in the app/build.gradle

ndk {
  abiFilters 'armeabi-v7a', 'x86'
}

Then we cleaned the build.

Then restarted the app.

Sign up to request clarification or add additional context in comments.

1 Comment

also added ndk { abiFilters 'armeabi-v7a', 'x86' }
2

The best solution is to add the following code to your app/build.gradle file.

defaultConfig {
   ...
    ndk {
        abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64", 'armeabi'
    }
    packagingOptions {
           exclude "lib/arm64-v8a/libgnustl_shared.so"
           exclude '/lib/mips64/**'
           exclude '/lib/arm64-v8a/**'
           exclude '/lib/x86_64/**'
    }

}

1 Comment

i got error 'INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.