Reputation: 989
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'
Upvotes: 95
Views: 76964
Reputation: 76769
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
...
<application
...
tools:remove="android:appComponentFactory"
tools:targetApi="p"/>
Upvotes: 23
Reputation: 69
I encountered a similar Didn't find class "androidx.core.app.CoreComponentFactory"
issue using dynamic feature modules (SplitInstallManagerFactory) on a newer project.
The issue occurred during the install of dynamic feature modules only when obfuscation was enabled (i.e., isMinifyEnabled = true
). This keep rule fixed it when added to my base app module's proguard-rules.pro
:
-keep class androidx.core.app.CoreComponentFactory { *; }
Tom's suggestion of falling back to java 1.8 also resolved the issue for me, but this keep rule allowed me to stay on the java 17 LTS.
Looking into the android/openjdk source, the BaseDexClassLoader.findClass
function appears to be inherited from java.lang.ClassLoader
. This deals with classes as strings, so my best guess is that R8 was obfuscating the androidx.core.app.CoreComponentFactory class. I can't guess as to why falling back to java 1.8 would also resolve the issue.
Upvotes: 0
Reputation: 1147
This error can be caused due to using both androidx
and legacy
android support libraries
Just open project structure
and go to Dependencies and select All Modules
and check is there any library which contains android.support
Just replace that with androidx
version for that library
In the latest versions of android studio, just REMOVE these lines if it is there inside the manifest file
<application
...
tools:replace="android:appComponentFactory" // REMOVE THIS
android:appComponentFactory="androidx" // REMOVE THIS
>
If still there is issue check this
https://stackoverflow.com/a/74523286/6236959
Upvotes: 1
Reputation: 42844
For anyone facing the same problem in the multi-Module project:-> In my case I had a multi-module project using the Jetpack compose for the presentation layer
Upvotes: 2
Reputation: 8362
In my case, I was using a library that has an interface that was inheriting a View.OnClickListener interface.
Upvotes: 0
Reputation: 582
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" />
Upvotes: 1
Reputation: 7824
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 :)
Upvotes: 43
Reputation: 43
If you are using an emulator, try the wipe data option. This worked for me.
Upvotes: 2
Reputation: 129
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.
Upvotes: 5
Reputation: 28839
See java.lang.ClassNotFoundException: Didn't find class "com.my_app_name.androidx".
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.
Upvotes: 1
Reputation: 627
In my case, the code works on one of my teammates' machine. These steps made it work for me too:
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.
Upvotes: 12
Reputation: 2264
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.
Upvotes: -2
Reputation: 17380
Seems to be a bug, check the next link in the issue tracker:
https://issuetracker.google.com/issues/137646829
Upvotes: 2
Reputation: 176
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.
Upvotes: -2
Reputation: 703
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.
Upvotes: -7
Reputation: 45
add below code to gradle.properties
android.enableJetifier=true
android.useAndroidX=true
or you can choose migrate to androidX in refactor -> Migrate to androidX.
Upvotes: -3