0

I have this error on devices that API below 24

05-02 19:56:33.554 17406-17406/com.aisolutions.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.aisolutions.myapplication, PID: 17406
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.aisolutions.myapplication/com.aisolutions.myapplication.Model.MainActivity}: android.view.InflateException: Binary XML file line #11: Error inflating class android.view.View
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3163)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3273)
        at android.app.ActivityThread.access$1000(ActivityThread.java:219)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1735)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:145)
        at android.app.ActivityThread.main(ActivityThread.java:6959)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
     Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class android.view.View
        at android.view.LayoutInflater.createView(LayoutInflater.java:640)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:672)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:65)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
        at com.aisolutions.myapplication.Model.MainActivity.onCreate(MainActivity.java:29)
        at android.app.Activity.performCreate(Activity.java:6609)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3116)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3273) 
        at android.app.ActivityThread.access$1000(ActivityThread.java:219) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1735) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:145) 
        at android.app.ActivityThread.main(ActivityThread.java:6959) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
        at android.view.LayoutInflater.createView(LayoutInflater.java:614)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:672) 
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:65) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:511) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:415) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:366) 
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555) 
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161) 
        at com.aisolutions.myapplication.Model.MainActivity.onCreate(MainActivity.java:29) 
        at android.app.Activity.performCreate(Activity.java:6609) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3116) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3273) 
        at android.app.ActivityThread.access$1000(ActivityThread.java:219) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1735) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:145) 
        at android.app.ActivityThread.main(ActivityThread.java:6959) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
     Caused by: android.content.res.Resources$NotFoundException: Resource "com.aisolutions.myapplication:drawable/bgheader" (7f080060)  is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f080060 a=-1 r=0x7f080060}
        at android.content.res.Resources.loadDrawableForCookie(Resources.java:4050)
        at android.content.res.Resources.loadDrawable(Resources.java:3962)
        at android.content.res.Resources.loadDrawable(Resources.java:3812)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:776)
        at android.view.View.<init>(View.java:4001)
        at android.view.View.<init>(View.java:3909)
        at android.view.View.<init>(View.java:3888)
        at java.lang.reflect.Constructor.newInstance(Native Method) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
        at android.view.LayoutInflater.createView(LayoutInflater.java:614) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:672) 
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:65) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:511) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:415) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:366) 
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555) 
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161) 
        at com.aisolutions.myapplication.Model.MainActivity.onCreate(MainActivity.java:29) 
        at android.app.Activity.performCreate(Activity.java:6609) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3116) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3273) 
        at android.app.ActivityThread.access$1000(ActivityThread.java:219) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1735) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:145) 
        at android.app.ActivityThread.main(ActivityThread.java:6959) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

MainActivity.java

package com.aisolutions.myapplication.Model;

import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;
import androidx.multidex.MultiDex;

import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.aisolutions.myapplication.Database.DatabaseHelper;
import com.aisolutions.myapplication.Details.SharedPrefs;
import com.aisolutions.myapplication.R;

public class MainActivity extends AppCompatActivity {
    TextView btn_logout, rankView, gpaView;
    CardView viewResults, viewPass, viewRepeat, viewNotAttend;
    DatabaseHelper databaseHelperMain;
    String[] data = new String[2];

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_logout = findViewById(R.id.btn_logout);
        viewResults = findViewById(R.id.viewResult);
        viewPass = findViewById(R.id.viewPass);
        viewRepeat = findViewById(R.id.viewRepeat);
        viewNotAttend = findViewById(R.id.viewNotAttend);
        rankView = findViewById(R.id.main_rank_txt);
        gpaView = findViewById(R.id.main_gpa_text);

        databaseHelperMain = new DatabaseHelper(this);

        data = getData();
        rankView.setText(data[0]);
        gpaView.setText(data[1]);

        viewResults.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, ResultsMain.class);
                startActivity(intent);
            }
        });

        viewPass.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, CategorizeResults.class);
                intent.putExtra("category", "Pass Subjects");
                startActivity(intent);
            }
        });

        viewRepeat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, CategorizeResults.class);
                intent.putExtra("category", "Repeat Subjects");
                startActivity(intent);
            }
        });

        viewNotAttend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, CategorizeResults.class);
                intent.putExtra("category", "Not Attended Subjects");
                startActivity(intent);
            }
        });

        btn_logout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SharedPrefs.saveSharedSetting(MainActivity.this, "MyLogin", "true");
                //And when you click on Logout button, You will set the value to True AGAIN
                Intent LogOut = new Intent(getApplicationContext(), LoginActivity.class);
                startActivity(LogOut);
                databaseHelperMain.onLogout(MainActivity.this);
                finish();
            }
        });
        CekSession();
    }

    private void CekSession() {
        Boolean Check = Boolean.valueOf(SharedPrefs.readSharedSetting(MainActivity.this, "MyLogin", "true"));

        Intent introIntent = new Intent(MainActivity.this, LoginActivity.class);
        introIntent.putExtra("MyLogin", Check);

        //The Value if you click on Login Activity and Set the value is FALSE and whe false the activity will be visible
        if (Check) {
            startActivity(introIntent);
            finish();
        } //If no the Main Activity not Do Anything
    }

    public String[] getData() {
        String[] data = new String[2];

        Cursor cursor = databaseHelperMain.getAllData("Details");

        while (cursor.moveToNext()) {
            data[0] = cursor.getString(4);
            data[1] = cursor.getString(3);
        }

        return data;
    }
}

Problem is showing this line

setContentView(R.layout.activity_main);

This app fully work on API 24. but not working others

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
defaultConfig {
        applicationId "com.aisolutions.myapplication"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }

I have CardViews in XML file. and I use sharedpreferences. I think the problem is in sharedpreferences but I am not sure. other cardview projects work on that devices well.

Akila Ishan
  • 147
  • 2
  • 12
  • `Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class android.view.View` show xml please – IntelliJ Amiya May 02 '20 at 14:52
  • 1
    `Resources$NotFoundException: Resource "com.aisolutions.myapplication:drawable/bgheader" (7f080060) is not a Drawable (color or path)` – You apparently have the `bgheader` drawable available only in `v24` and higher. If you're going to use it unconditionally, then you need to have a `bgheader` drawable in the default drawable folders, too. Or, just move it there, if possible. – Mike M. May 02 '20 at 14:56

0 Answers0