Приложение Android выдает сбой при запуске на KitKat 4.4

Мое приложение, установленное на моем относительно новом Huawei с Oreo 8.0, может запускать и запускать приложение без проблем. Приложение также отлично работает на эмуляторе Nexus под управлением Lollipop. Однако на другом моем телефоне с KitKat 4.4 приложение вылетает при запуске.

Я думаю, что проблема возникла, когда я добавил NavigationDrawerActivity по умолчанию.

LoginActvity

Это дает мне исключение inflate при загрузке файла макета с использованием setContentView()

public class LoginActivity extends Activity {


    private UserLoginTask mAuthTask = null;

    // UI references.
    private EditText mEmailView;
    private EditText mPasswordView;
    private TextView mRegistrationScreen;
    private View mProgressView;
    private View mLoginFormView;
    public String id;

    @Override
    @TargetApi(19)
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
        ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);

        setContentView(R.layout.activity_login_registration);
        // Set up the login form.
        mEmailView = (EditText) findViewById(R.id.email);
        mPasswordView = (EditText) findViewById(R.id.password);

        Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);

        mLoginFormView = findViewById(R.id.login_form);
        mProgressView = findViewById(R.id.login_progress);
        mRegistrationScreen = findViewById(R.id.registerLink);
        mEmailSignInButton.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                String emailAddress = mEmailView.getText().toString().trim();
                String password = mPasswordView.getText().toString().trim();
                UserLoginTask callDOIB = new UserLoginTask();
                try {
                    String loginSuccessFail = callDOIB.execute(emailAddress, password).get();
                    try {
                        JSONObject jsonObject = new JSONObject(loginSuccessFail);
                        id = jsonObject.getString("id");
                        //JSONObject id = jArray.getJSONObject(0);
                        System.out.println("json object at LoginActivity id is "+id);
                        authoriseLogin(loginSuccessFail, id);
                    }catch (JSONException e){
                        e.printStackTrace();
                    }

                }catch(InterruptedException e){
                    e.printStackTrace();
                }
                catch (ExecutionException e){
                    e.printStackTrace();
                }
            }
        });

        mRegistrationScreen.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                Intent loadRegistration = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivity(loadRegistration);
            }
        });
    }






    public void authoriseLogin(String authorise, String id){
        if (authorise.contains("id")) {
            System.out.println(" accessLRA.authoriseLogin login has been called");
            Session session = new Session(getApplicationContext());
            session.setId(id);
            Intent loadPersonal = new Intent(LoginActivity.this, MainActivity.class);
            startActivity(loadPersonal);

            System.out.println("Login has been authorised");
        }
        else{
            System.out.println("Incorrect username or password");
        }
    }





    }

java.lang.RuntimeException: не удалось запустить действие ComponentInfo {com.example.a_phi.myapplication / com.example.a_phi.myapplication.LoginActivity}: android.view.InflateException: строка двоичного файла XML № 2: ошибка наполнения класса

Как указано в разделе комментариев, мне действительно не хватало некоторых других папок res -v21, которые поддерживают уровень API 21 для Android KitKat. По какой-то причине я не переместил их в свой новый проект. Теперь он работает, спасибо.


person Hazed 2.0    schedule 05.09.2018    source источник
comment
09-05 14: 05: 57.285 30968-30968 /? E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.example.a_phi.myapplication, PID: 30968 java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.example.a_phi.myapplication / com.example.a_phi.myapplication.LoginActivity }: android.view.InflateException: строка двоичного XML-файла № 2: Ошибка при раздувании класса в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2264) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2313) на android .app.ActivityThread.access $ 1100 (ActivityThread.java:141) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1238) в android.os.Handler.dispatchMessage (Handler.java:102) на android.os .Looper.loop (Looper.java:136) в android.app.ActivityThread.main (ActivityThread.java:5333) в java.lang.reflect.Method.invokeNative (собственный метод) в java.lang.reflect.Method.invoke (Method.java:515) а t com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:895) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:711) в dalvik.system.NativeStart.main (Native Метод) Вызвано: android.view.InflateException: строка двоичного XML-файла № 2: ошибка надувания класса в android.view.LayoutInflater.createView (LayoutInflater.java:620) в com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView (PhoneLayoutInflater.java:56) на android.view.LayoutInflater.onCreateView (LayoutInflater.java:669) на android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:694) на android.view.LayoutInflater.inflate.java :Inflater.java: 469) на android.view.LayoutInflater.inflate (LayoutInflater.java:397) на android.view.LayoutInflater.inflate (LayoutInflater.java:353) на com.android.internal.policy.impl.PhoneWindow.setContentView (PhoneWindow.java : 290) на android.ap p.Activity.setContentView (Activity.java:1958) в com.example.a_phi.myapplication.LoginActivity.onCreate (LoginActivity.java:44) в android.app.Activity.performCreate (Activity.java:5340) в android.app .Instrumentation.callActivityOnCreate (Instrumentation.java:1087) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2228) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2313) в android.app. ActivityThread.access $ 1100 (ActivityThread.java:141) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1238) в android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper. цикл (Looper.java:136) в android.app.ActivityThread.main (ActivityThread.java:5333) в java.lang.reflect.Method.invokeNative (собственный метод) в java.lang.reflect.Method.invoke (Method. java: 515) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:895) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:711) в dalvik.system.NativeStart .main (собственный метод) Вызвано: java.lang.reflect.InvocationTargetException в java.lang.reflect.Constructor.constructNative (собственный метод) в java.lang.reflect.Constructor.newInstance (Constructor.java:423) в android. view.LayoutInflater.createView (LayoutInflater.java:594) на com.andro id.internal.policy.impl.PhoneLayoutInflater.onCreateView (PhoneLayoutInflater.java:56) на android.view.LayoutInflater.onCreateView (LayoutInflater.java:669) на android.view.LayoutInflater.createViewFromTag (androidjava:694.java) .view.LayoutInflater.inflate (LayoutInflater.java:469) на android.view.LayoutInflater.inflate (LayoutInflater.java:397) на android.view.LayoutInflater.inflate (LayoutInflater.java:353) на com.android.internal. policy.impl.PhoneWindow.setContentView (PhoneWindow.java:290) на android.app.Activity.setContentView (Activity.java:1958) на com.example.a_phi.myapplication.LoginActivity.onCreate (LoginActivity.java:44) на android .app.Activity.performCreate (Activity.java:5340) в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2228) в andr oid.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2313) на android.app.ActivityThread.access $ 1100 (ActivityThread.java:141) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1238) на android. os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.loop (Looper.java:136) в android.app.ActivityThread.main (ActivityThread.java:5333) в java.lang.reflect.Method .invokeNative (собственный метод) в java.lang.reflect. Method.invoke (Method.java:515) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:895) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:711) в dalvik.system.NativeStart.main (собственный метод) Вызвано: java.lang.NullPointerException в com.huawei.android.content.res.ResourcesEx.getThemeDrawable (ResourcesEx.java:655) в com.huawei.android.content. res.ResourcesEx.loadDrawable (ResourcesEx.java:623) в android.content.res.TypedArray.getDrawable (TypedArray.java:616) в android.view.View. (View.java:3573) в android.view.ViewGroup. (ViewGroup.java:470) в android.widget.LinearLayout. (LinearLayout.java:179) в android.widget.LinearLayout. (LinearLayout.java:175) в java.lang.reflect.Constructor.constructNative (собственный метод) в java.lang.reflect.Constructor.newInstance (Constructor.java:423) в android.view.LayoutInflate r.createView (LayoutInflater.java:594) на com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView (PhoneLayoutInflater.java:56) на android.view.LayoutInflater.onCreateView (LayoutInflater.java:669) на android.view .LayoutInflater.createViewFromTag (LayoutInflater.java:694) на android.view.LayoutInflater.inflate (LayoutInflater.java:469) на android.view.LayoutInflater.inflate (LayoutInflater.java:397) на android.view.LayoutInflater. LayoutInflater.java:353) на com.android.internal.policy.impl.PhoneWindow.setContentView (PhoneWindow.java:290) на android.app.Activity.setContentView (Activity.java:1958) на com.example.a_phi.myapplication .LoginActivity.onCreate (LoginActivity.java:44) в android.app.Activity.performCreate (Activity.java:5340) в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087) в android.app.ActivityThread.perfo rmLaunchActivity (ActivityThread.java:2228) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2313) в android.app.ActivityThread.access 1100 долларов (ActivityThread.java:141) в android.app.ActivityThread $ H.handleMessage ( ActivityThread.java:1238) в android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.loop (Looper.java:136) в android.app.ActivityThread.main (ActivityThread.java:5333 ) В java.lang.reflect. Method.invokeNative (собственный метод) на java.lang.reflect.Method.invoke (Method.java:515) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:895) на com.android. internal.os.ZygoteInit.main (ZygoteInit.java:711) в dalvik.system.NativeStart.main (собственный метод)   -  person Mohamed Mohaideen AH    schedule 05.09.2018


Ответы (1)


проверьте файлы макета. возможно, что некоторые из них находятся в папке layout-v21. В этом случае вы предоставляете макет только для уровня API 21 и выше.

person Hazed 2.0    schedule 05.09.2018