mikepenz/Android-Iconics

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/mikepenz/iconics/typeface/IconicsInitializer;

clebermatheus opened this issue ยท 6 comments

java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/mikepenz/iconics/typeface/IconicsInitializer;
        at android.app.ActivityThread.installProvider(ActivityThread.java:6269)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5832)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5749)
        at android.app.ActivityThread.-wrap1(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:169)
        at android.app.ActivityThread.main(ActivityThread.java:6521)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: androidx.startup.StartupException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/mikepenz/iconics/typeface/IconicsInitializer;
        at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:162)
        at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:198)
        at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:42)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1940)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1915)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6266)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5832) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5749) 
        at android.app.ActivityThread.-wrap1(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:169) 
        at android.app.ActivityThread.main(ActivityThread.java:6521) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/mikepenz/iconics/typeface/IconicsInitializer;
        at com.mikepenz.iconics.typeface.library.fontawesome.Initializer.dependencies(Initializer.kt:15)
        at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:143)
        at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:198) 
        at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:42) 
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1940) 
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1915) 
        at android.app.ActivityThread.installProvider(ActivityThread.java:6266) 
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5832) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5749) 
        at android.app.ActivityThread.-wrap1(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:169) 
        at android.app.ActivityThread.main(ActivityThread.java:6521) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mikepenz.iconics.typeface.IconicsInitializer" on path: DexPathList[[zip file "/data/app/care.viva.app-jhiC3drYztQ_dsci8h3GOg==/base.apk"],nativeLibraryDirectories=[/data/app/care.viva.app-jhiC3drYztQ_dsci8h3GOg==/lib/arm64, /data/app/care.viva.app-jhiC3drYztQ_dsci8h3GOg==/base.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.mikepenz.iconics.typeface.library.fontawesome.Initializer.dependencies(Initializer.kt:15) 
        at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:143) 
        at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:198) 
        at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:42) 
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1940) 
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1915) 
        at android.app.ActivityThread.installProvider(ActivityThread.java:6266) 
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5832) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5749) 
        at android.app.ActivityThread.-wrap1(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:169) 
        at android.app.ActivityThread.main(ActivityThread.java:6521) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

Library Version: 5.2.8
Gradle: 6.9
Android Studio: 4.2.1

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.3.0-rc01'
    implementation 'androidx.annotation:annotation:1.2.0'
    implementation 'androidx.browser:browser:1.3.0'
    implementation "androidx.cardview:cardview:1.0.0"
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.exifinterface:exifinterface:1.3.2'
    implementation 'androidx.fragment:fragment-ktx:1.3.3'
    implementation 'androidx.lifecycle:lifecycle-common-java8:2.3.1'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.3.1"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
    implementation 'androidx.media:media:1.3.1'
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation('androidx.preference:preference-ktx:1.1.1')
    implementation "androidx.recyclerview:recyclerview:1.2.0"
    implementation 'androidx.room:room-runtime:2.3.0'
    implementation 'androidx.room:room-ktx:2.3.0'
//    implementation "androidx.startup:startup-runtime:1.0.0"
    implementation "androidx.vectordrawable:vectordrawable:1.1.0"
    implementation 'com.android.volley:volley:1.2.0'
    implementation 'com.facebook.android:facebook-login:9.1.1'
    implementation 'com.facebook.fresco:fresco:2.4.0'
    implementation 'com.github.cleberpublitz:Collapsible-Calendar-View-Android:1.1.1'
    implementation 'com.google.android.gms:play-services-auth:19.0.0'
    implementation 'com.google.android.gms:play-services-location:18.0.0'
    implementation 'com.google.android.gms:play-services-maps:17.0.1'
    implementation 'com.google.android.libraries.places:places:2.4.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'com.google.code.gson:gson:2.8.6'
    implementation 'com.google.firebase:firebase-analytics:18.0.3'
    implementation 'com.google.firebase:firebase-crashlytics:17.4.1'
    implementation 'com.google.firebase:firebase-crashlytics-ktx:17.4.1'
    implementation 'com.google.firebase:firebase-perf:19.1.1'
    implementation 'com.hendraanggrian.material:collapsingtoolbarlayout-subtitle:1.1.0'
    implementation 'com.mikepenz:fontawesome-typeface:5.9.0.2-kotlin@aar'
    implementation 'com.mikepenz:google-material-typeface:4.0.0.1-kotlin@aar'
    implementation 'com.mikepenz:iconics-core:5.2.8@aar'
    implementation 'com.mikepenz:material-design-iconic-typeface:2.2.0.8-kotlin@aar'
    implementation 'com.muditsen.multilevelrecyclerview:multilevelview:1.0.4'
    implementation 'com.onesignal:OneSignal:4.3.4'
    implementation 'com.redmadrobot:input-mask-android:6.0.0'
    implementation platform("com.squareup.okhttp3:okhttp-bom:4.9.1")
    implementation 'com.squareup.okhttp3:logging-interceptor'
    implementation 'com.squareup.okhttp3:okhttp'
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.synnapps:carouselview:0.1.6'
    implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
    implementation 'de.hdodenhof:circleimageview:3.1.0'

    kapt 'androidx.room:room-compiler:2.3.0'

    implementation 'io.jsonwebtoken:jjwt-api:0.11.2'
    runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.2'
    runtimeOnly('io.jsonwebtoken:jjwt-orgjson:0.11.2') {
        exclude group: 'org.json', module: 'json' //provided by Android natively
    }
    // Uncomment the next line if you want to use RSASSA-PSS (PS256, PS384, PS512) algorithms:
    //runtimeOnly 'org.bouncycastle:bcprov-jdk15on:1.60'

    testImplementation 'androidx.arch.core:core-testing:2.1.0'
    testImplementation "androidx.room:room-testing:2.3.0"
    testImplementation 'androidx.test.ext:junit:1.1.2'
    testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2'
    testImplementation('com.squareup.okhttp3:mockwebserver:4.9.1')
    testImplementation 'io.mockk:mockk:1.11.0'
    testImplementation 'junit:junit:4.13.2'

    androidTestImplementation 'androidx.arch.core:core-testing:2.1.0'
    androidTestImplementation 'androidx.test:runner:1.3.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'io.mockk:mockk-android:1.11.0'
}

This fixed:

implementation 'com.mikepenz:iconics-typeface-api:5.2.8@aar'

This fixed:

implementation 'com.mikepenz:iconics-typeface-api:5.2.8@aar'

This should be added in readme.

@hiteshchavda this problem should not occur if you use the latest release with the latest font libraries.
What dependency combination does cause problems on your end?

i'm using following combination

implementation 'com.mikepenz:iconics-core:5.4.0@aar'
implementation 'com.mikepenz:iconics-views:5.4.0@aar'
implementation 'com.mikepenz:community-material-typeface:7.0.96.0-kotlin@aar'

๐Ÿ‘†
this gives the "java.lang.NoClassDefFoundError: Failed resolution of: Lcom/mikepenz/iconics/typeface/IconicsInitializer;" error

including following works ๐Ÿ‘‡
// implementation 'com.mikepenz:iconics-typeface-api:5.3.4@aar'


Other libs i'm using

implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.google.firebase:firebase-analytics-ktx:21.5.0'
implementation 'androidx.preference:preference-ktx:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.work:work-runtime:2.9.0'
implementation 'androidx.work:work-runtime-ktx:2.9.0'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version'
implementation 'androidx.lifecycle:lifecycle-common-java8:$lifecycle_version'
implementation 'androidx.lifecycle:lifecycle-process:$lifecycle_version'

@hiteshchavda the problem is related to the -core and -views modules being declared as @aar. Doing so will result in them not resolving their transitive dependencies -> which typeface-api is one of them.

Only the font libraries should be defined with @aar. Please see the README for reference
https://github.com/mikepenz/Android-Iconics?tab=readme-ov-file#1-provide-the-gradle-dependency

@mikepenz Sorry, my bad.

should have read carefully before commenting.