Didn't find class "androidx.core.app.CoreComponentFactory"
JavaAndroidJava Problem Overview
I don't know what to do about the following errors, I've searched the web but not found anything:
java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/com.example.padmw-CXElJ_vfrfm3y7py3CPsJw==/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.LoadedApk.createAppFactory(LoadedApk.java:226)
at android.app.LoadedApk.updateApplicationInfo(LoadedApk.java:338)
at android.app.ActivityThread.handleDispatchPackageBroadcast(ActivityThread.java:5388)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1733)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at com.android.server.SystemServer.run(SystemServer.java:454)
at com.android.server.SystemServer.main(SystemServer.java:294)
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:838)
and :
2019-08-29 00:19:24.071 1853-1853/? E/LoadedApk: Unable to instantiate appComponentFactory
java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/com.example.padmw-CXElJ_vfrfm3y7py3CPsJw==/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.LoadedApk.createAppFactory(LoadedApk.java:226)
at android.app.LoadedApk.updateApplicationInfo(LoadedApk.java:338)
at android.app.ActivityThread.handleDispatchPackageBroadcast(ActivityThread.java:5388)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1733)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at com.android.server.SystemServer.run(SystemServer.java:454)
at com.android.server.SystemServer.main(SystemServer.java:294)
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:838)
my dependencies in gradle app :
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.firebase:firebase-core:17.1.0'
implementation 'com.google.firebase:firebase-database:19.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.navigation:navigation-fragment:2.0.0'
implementation 'androidx.navigation:navigation-ui:2.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.firebaseui:firebase-ui-database:1.2.0'
}
apply plugin: 'com.google.gms.google-services'
Java Solutions
Solution 1 - Java
Adding Java 1.8 compatibility to my module-level build.gradle
fixed this for me (non-release build with multidex enabled).
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
Unfortunately I'm not sure why :)
Solution 2 - Java
This error message is caused on API level 28+ by:AppComponentFactory
extends
android.app.AppComponentFactory
This means that on API 28+ one can use tools:remove
...
tools:remove="android:appComponentFactory"
tools:targetApi="p"
Solution 3 - Java
In my case, the code works on one of my teammates' machine. These steps made it work for me too:
- Close project
- Remove the project from the list in the welcome screen
- Open the project again
This is a solution to another problem, that I also found here in SO. It's worth a try when Invalidate and Restart doesn't solve it for you.
Solution 4 - Java
It may sound totally unrelated, but I have seen this problem also when by mistake I have overridden wrong on Activity#onCreate() method i.e.
public void onCreate(@Nullable Bundle savedInstanceState,
@Nullable PersistableBundle persistentState)
Instead of
protected void onCreate(@Nullable Bundle savedInstanceState)
So, please check that also. The second one is the one that you probably need.
Please refer to documentation for the details of these two methods.
Solution 5 - Java
Seems to be a bug, check the next link in the issue tracker:
Solution 6 - Java
Remove from AndroidManifest
:
<application
...
android:appComponentFactory="androidx"
tools:replace="android:appComponentFactory"
>
These lines appeared a year ago after migrating to AndroidX. I removed them, now it doesn't show the exception.
Solution 7 - Java
For Xamarin folks running into this problem: I started to see this problem when upgrading from Xamarin.Forms 4.x to 5.0. With AndroidX changes that I wasn't aware when I've done the upgrade the min SDK version needs to be changed to 29 on the android manifest file, something like:
<uses-sdk android:minSdkVersion="29" android:targetSdkVersion="30" />
Solution 8 - Java
If you are using an emulator, try the wipe data option. This worked for me.
Solution 9 - Java
In my case, I was using a library that has an interface that was inheriting a View.OnClickListener interface.
Solution 10 - Java
In my case ,that was because of a little mistake in one of my layouts.
I removed one >
at the end of a view tag accidentlly.
Check your
> xml
files.
Solution 11 - Java
After reviewing the Android Issue Tracker bug report mentioned previously, I saw a mention about multidex support. I had no multidex flags specified in my project, so I tried setting the flag to false
on all modules in my project, and the exception went away.
This was not a permanent solution; the problem returned a few builds later.
Solution 12 - Java
add below code to gradle.properties
android.enableJetifier=true
android.useAndroidX=true
or you can choose migrate to androidX in refactor -> Migrate to androidX.
Solution 13 - Java
In my case, add android.enableR8=false
in the gradle.properties.
Solution 14 - Java
did u create fragments? ok if you create fragments with classes and after that you have to create a class to call those fragments. and if you use switch this cane be like this
`public Fragment getItem(int i) {
// you have create a switch to get positions using i.
switch (i) {
case 0:
ChatsFragment chatsFragment = new ChatsFragment();
return chatsFragment;
case 1:
GroupsFragment groupsFragment = new GroupsFragment();
return groupsFragment;
case 2:
ContactsFragment contactsFragment = new ContactsFragment();
return contactsFragment;
default:
return null;
}
}
@Override
public int getCount() {
return 3;//error can be happen if u use default 0, use fragment counts in here.
}`
in this case you can see 3 cases in switch and the public int getCount() the return value should be 3 not default value 0.
See your error must be close to this one. i got same kind of error and i solved it.