1
 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.iotegral.iotvision/com.iotegral.iotvision.activity.DashBoardActivity}: android.view.InflateException: Binary XML file line #12 in com.iotegral.iotvision:layout/activity_base: Binary XML file line #12 in com.iotegral.iotvision:layout/activity_base: Error inflating class androidx.drawerlayout.widget.DrawerLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3534)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3689)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:140)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:100)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2239)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:227)
        at android.app.ActivityThread.main(ActivityThread.java:7822)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)
     Caused by: android.view.InflateException: Binary XML file line #12 in com.iotegral.iotvision:layout/activity_base: Binary XML file line #12 in com.iotegral.iotvision:layout/activity_base: Error inflating class androidx.drawerlayout.widget.DrawerLayout
     Caused by: android.view.InflateException: Binary XML file line #12 in com.iotegral.iotvision:layout/activity_base: Error inflating class androidx.drawerlayout.widget.DrawerLayout
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Field.get(java.lang.Object)' on a null object reference
        at uk.co.chrisjenx.calligraphy.ReflectionUtils.getValue(ReflectionUtils.java:29)
        at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:203)
        at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
        at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
        at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:239)
        at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1086)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:999)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:963)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1142)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1103)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
        at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
        at com.iotegral.iotvision.BaseActivity.onCreate(BaseActivity.kt:80)
        at com.iotegral.iotvision.activity.DashBoardActivity.onCreate(DashBoardActivity.kt:69)
        at android.app.Activity.performCreate(Activity.java:7963)
        at android.app.Activity.performCreate(Activity.java:7952)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3505)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3689)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:140)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:100)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2239)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:227)

  



apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 30
    defaultConfig {
        applicationId "com.iotegral.iotvision"
        minSdkVersion 16
        targetSdkVersion 30
        multiDexEnabled true
        versionCode 4
        buildConfigField 'String', 'BASE_URL', propBaseUrl
        versionName "1.3"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility = '1.8'
        targetCompatibility = '1.8'
    }
    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation 'androidx.navigation:navigation-fragment:2.3.2'
    implementation 'androidx.navigation:navigation-ui:2.3.2'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
    implementation 'androidx.navigation:navigation-fragment-ktx:2.3.2'
    implementation 'androidx.navigation:navigation-ui-ktx:2.3.2'
    implementation 'com.google.firebase:firebase-messaging:20.2.0'
    implementation 'com.android.support:multidex:1.0.3'
    testImplementation 'junit:junit:4.12'
    implementation 'joda-time:joda-time:2.9.9'
    implementation 'com.karumi:dexter:5.0.0'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'com.amitshekhar.android:jackson-android-networking:0.3.0'
    implementation 'com.amitshekhar.android:rx-android-networking:1.0.0'
    implementation 'com.intuit.sdp:sdp-android:1.0.6'
    implementation 'com.intuit.ssp:ssp-android:1.0.5'
    implementation 'io.reactivex.rxjava2:rxjava:2.1.6'
    implementation 'com.jakewharton.rxbinding2:rxbinding-design:2.1.1'
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
    implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
    implementation 'com.google.dagger:dagger:2.25.3'
    kapt 'com.google.dagger:dagger-compiler:2.25.3'
    implementation 'com.jakewharton:butterknife:10.2.0'
    kapt 'com.jakewharton:butterknife-compiler:10.2.0'
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    implementation 'de.hdodenhof:circleimageview:3.0.0'
    kapt 'com.github.bumptech.glide:compiler:4.8.0'
    implementation project(':speedviewlib')
    implementation 'com.skyfishjy.ripplebackground:library:1.0.1'
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'com.patrickpissurno:ripple-effect:1.3.1'
    implementation 'com.astuetz:pagerslidingtabstrip:1.0.1'
}

//XML is as follows,This is the XML where I am getting the inflate exception in drawer layout .I have migrated androidx as well but still getting an error.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:fitsSystemWindows="true"
    android:layout_height="match_parent"
    >


    <androidx.drawerlayout.widget.DrawerLayout
     android:id="@+id/drawer_layout"
     android:layout_width="match_parent"
     android:layout_gravity="left|start"
     android:layout_height="match_parent">
    <include
        layout="@layout/app_bar_base"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="@dimen/_200sdp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        >
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent">
            <include layout="@layout/custom_side_menu" />




        </RelativeLayout>
    </com.google.android.material.navigation.NavigationView>

    </androidx.drawerlayout.widget.DrawerLayout>

</RelativeLayout>

//I am getting this error while inflating the drawer layout.I am not sure if it is due to caligraphy. Please help me out.Code running fine on version 28 while upgrading to 29/30 it crashes

Mainak Mukherjee
  • 782
  • 1
  • 6
  • 10
  • Your problem is at uk.co.chrisjenx.calligraphy.ReflectionUtils.getValue(ReflectionUtils.java:29). Its using reflection to get a field. If its breaking on an update, its most likely assuming a field exist that no longer does and it should never have relied on. – Gabe Sechan Dec 27 '20 at 16:15
  • See also: https://stackoverflow.com/questions/57495384/crash-on-calligraphy-library-by-chris-jenx-for-android-q that library isn't maintained anymore, you should upgrade to version 3. – Gabe Sechan Dec 27 '20 at 16:16
  • Can you please provide a solution for it? – Mainak Mukherjee Dec 27 '20 at 16:17
  • 1
    Solution: don't use that library. Upgrade to version 3. There is no other solution that won't take days->weeks of coding. – Gabe Sechan Dec 27 '20 at 16:20
  • Thank you.You saved my day.it took 5 mins to replace :).Thanks again. – Mainak Mukherjee Dec 27 '20 at 17:05

0 Answers0