I migrated my app to AndroidX and it\'s crashing on launch on API level 21. My application throws this exception:
10-08
The documentation is outdated; use androidx.multidex
for androidx
:
implementation "androidx.multidex:multidex:2.0.1"
AndroidManifest.xml
:
<application
android:name="androidx.multidex.MultiDexApplication">
</application>
Use the Jetifier when it still uses any com.android.support
libraries:
android.enableJetifier=true
add below ndk lib support to your project if you have used the external library -
ndk
{
abiFilters "armeabi-v7a", "x86", "x86_64", "arm64-v8a"
}
inside the default config of your app level build.gradle file
defaultConfig
{
applicationId "org.comcast.net"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk
{
abiFilters "armeabi-v7a", "x86", "x86_64", "arm64-v8a"
}
}
it has solved my problem, hopefully it will solve at your end also.
It seems that this error came from incomplete configuration of MultiDex in your app. Here you may find the similar issue and here is an article answering it.
I suggest you to check the following (extending App class helped me):
Your Application class (App.class, for instance, if you use it) should extend from MultiDexApplication class:
public class BaseApplication extends MultiDexApplication {}
or if you don't use Application class check your manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
The problem is your React Native android project is not in AndroidX while react-native-image-picker
is in an AndroidX environment; therefore, it is missing packages from the androidx package library.
Simple fix is adding the following lines to your ./android/gradle.properties
file:
android.useAndroidX=true
android.enableJetifier=true
If you have any existing RN libraries that uses old android packages, your project won't build since they will be missing once you updated your project.
A clever tool found here deals with RN libraries that uses old android packages and brings them up to date.
npm i --save-dev jetifier
npx jetify
react-native run-android
All checked out and it's working on my end. Hope this helps anyone and please do share if it does.
Source https://github.com/react-native-community/react-native-image-picker/issues/1088#issuecomment-509755692