簡體   English   中英

Android應用程序似乎在KitKat 4.4上啟動時崩潰

[英]Android app seems to be crashing on launch on KitKat 4.4

當我的應用程序安裝在運行Oreo 8.0的相對較新的華為上時,我的應用程序可以順利啟動和運行。 該應用程序還可以在運行Lollipop的Nexus模擬器上正常運行。 但是,在運行KitKat 4.4的另一部手機上,該應用在啟動時崩潰。

我認為在添加默認的NavigationDrawerActivity時出現了問題。

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.os.Handler.dispatchMessage(Handler.java:102)上的.app.ActivityThread.access $ 1100(ActivityThread.java:141)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1238)在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 dalvik.system.NativeStart.main(本機方法)的.main(ZygoteInit.java:711)原因:android.view.InflateException:二進制XML文件第2行:android.view.LayoutInflater.createView(LayoutInflater)發生類錯誤膨脹com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)的android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)的.java:620)android.view.LayoutInflater.createViewFromTag( android.view.LayoutInflater.inflate(LayoutInflater.java:469)處的LayoutInflater.java:694)android.view.LayoutInflater.inflate(LayoutInflater.java:353)處android.view.LayoutInflater.inflate(LayoutInflater.java:397)處)com.example.a_phi.myapplication.LoginActivity.onCreate()com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)android.app.Activity.setContentView(Activity.java:1958) android.app.Activity.performCreate(Activity.java:5340)上的LoginActivity.java:44)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.loop(Looper.java:136) com.android的java.lang.reflect.Method.invokeNative(本機方法)處的android.app.ActivityThread.main(ActivityThread.java:5333)。 dalvik.system.NativeStart.main(本機方法)處com.android.internal.os.ZygoteInit.main(ZygoteInit.java:711)處的internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:895) android.view.La處java.lang.reflect.Constructor.constructNative(本地方法)處的java.lang.reflect.InvocationTargetException。android.view.La處java.lang.reflect.Constructor.newInstance(Constructor.java:423)處的java.lang.reflect.InvocationTargetException com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)的com.android.internal.policy.iphone.android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)的youtInflater.createView(LayoutInflater.java:594) android.view.LayoutInflater.inflate(LayoutInflater.java:469)的.LayoutInflater.createViewFromTag(LayoutInflater.java:694)android.view.LayoutInflater.inflate(.android.view.LayoutInflater.inflate(LayoutInflater.java:397) com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)位於android.app.Activity.setContentView(Activity.java:1958)位於com.example.a_phi.myapplication的LayoutInflater.java:353)在android.app.Activity.performCreate(Activity.java:5340)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)的.LoginActivity.onCreate(LoginActivity.java:44)在android.app.ActivityThread.performLaunchActivity( android.app.ActivityThread.handleLaunchActivity(ActivityThread.ActivityThread.java:2228)。 的android.app.ActivityThread.access $ 1100(ActivityThread.java:141)的java:2313)android.os.Handler.dispatchMessage(Handler.java:android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1238)的android。 102),位於java.lang.reflect.Method.invokeNative(Native Method),位於android.app.ActivityThread.main(ActivityThread.java:5333),位於android.os.Looper.loop(Looper.java:136) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:895)的com.android.internal.os.ZygoteInit.main(ZygoteInit.java)的.reflect.Method.invoke(Method.java:515) :711)在dalvik.system.NativeStart.main(本機方法)造成原因:com.huawei.android.content.res.ResourcesEx.getThemeDrawable(ResourcesEx.java:655)處的com.huawei.android.java.lang.NullPointerException .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.widg et.LinearLayout。(LinearLayout.java:179)at android.widget.LinearLayout。(LinearLayout.java:175)at java.lang.reflect.Constructor.constructNative(Native Method)at java.lang.reflect.Constructor.newInstance( com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)處android.view.LayoutInflater.createView(LayoutInflater.java:594)的Constructor.java.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.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)在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.app.ActivityThread.main(ActivityThread.java:5333)在android.os.Looper.loop(Looper.java:136)在java.lang.reflect在java.lang.reflect.Method.invokeNative(Native Method) .com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:895)處的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:711).Method.invoke(Method.java:515) )在dalvik.system.NativeStart.main(本機方法)

登錄活動

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");
        }
    }





    }

使用setContentView()加載布局文件時,它給了我一個膨脹異常

java.lang.RuntimeException:無法啟動活動ComponentInfo {com.example.a_phi.myapplication / com.example.a_phi.myapplication.LoginActivity}:android.view.InflateException:二進制XML文件第2行:錯誤誇大類

如評論部分所建議,我實際上缺少一些其他的-v21文件夾,這些文件夾支持Android KitKat的API級別21。 由於某種原因,我沒有將它們移到我的新項目中。 現在正在工作,謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM