2016-11-21 94 views
0

这是我的登录activity.xml,我得到一个布局的异常可能会有人帮我this.My应用程序,因为这为什么我得到布局膨胀异常?

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 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:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".view.LoginActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/login_screen_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <ScrollView 
     android:layout_marginTop="?attr/actionBarSize" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <include layout="@layout/content_login" /> 
    </ScrollView> 

这个崩溃的是,我得到的例外,我无法理解我要去的地方错了

FATAL EXCEPTION: main Process: com.mindtree.vishram, PID: 9699                             java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mindtree.vishram/com.mindtree.vishram.view.LoginActivity}: android.view.InflateException: Binary XML file line #34: Error inflating class EditText 
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2338) 
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
                   at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
                   at android.os.Handler.dispatchMessage(Handler.java:110) 
                   at android.os.Looper.loop(Looper.java:193) 
                   at android.app.ActivityThread.main(ActivityThread.java:5292) 
                   at java.lang.reflect.Method.invokeNative(Native Method) 
                   at java.lang.reflect.Method.invoke(Method.java:515) 
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824) 
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640) 
                   at dalvik.system.NativeStart.main(Native Method) 
                  Caused by: android.view.InflateException: Binary XML file line #34: Error inflating class EditText 
                   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) 
                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
                   at android.view.LayoutInflater.parseInclude(LayoutInflater.java:839) 
                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:745) 
                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
                   at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
                   at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
                   at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
                   at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
                   at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                   at com.mindtree.vishram.view.LoginActivity.onCreate(LoginActivity.java:49) 
                   at android.app.Activity.performCreate(Activity.java:5264) 
                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) 
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302) 
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)  
                   at android.app.ActivityThread.access$800(ActivityThread.java:151)  
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)  
                   at android.os.Handler.dispatchMessage(Handler.java:110)  
                   at android.os.Looper.loop(Looper.java:193)  
                   at android.app.ActivityThread.main(ActivityThread.java:5292)  
                   at java.lang.reflect.Method.invokeNative(Native Method)  
                   at java.lang.reflect.Method.invoke(Method.java:515)  
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)  
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)  
                   at dalvik.system.NativeStart.main(Native Method)  
                  Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f020096 a=-1 r=0x7f020096} 
                   at android.content.res.Resources.loadDrawable(Resources.java:2124) 
                   at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
                   at android.view.View.<init>(View.java:3579) 
                   at android.widget.TextView.<init>(TextView.java:642) 
                   at android.widget.EditText.<init>(EditText.java:60) 
                   at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:59) 
                   at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:55) 
                   at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112) 
                   at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1013) 
                   at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1072) 
                   at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
                   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684) 
                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)  
                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  
                   at android.view.LayoutInflater.parseInclude(LayoutInflater.java:839)  
                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)  
                   at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  
                   at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  
                   at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  
                   at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  
                   at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  
                   at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                   at com.mindtree.vishram.view.LoginActivity.onCreate(LoginActivity.java:49)  
                   at android.app.Activity.performCreate(Activity.java:5264)  
                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)  
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302)  
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)  
                   at android.app.ActivityThread.access$800(ActivityThread.java:151)  
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)  
                   at android.os.Handler.dispatchMessage(Handler.java:110)  
                   at android.os.Looper.loop(Looper.java:193)  
                   at android.app.ActivityThread.main(ActivityThread.java:5292)  
                   at java.lang.reflect.Method.invokeNative(Native Method)  
                   at java.lang.reflect.Method.invoke(Method.java:515)  
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)  
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)  
                   at dalvik.system.NativeStart.main(Native Method)  

这是我登录活动

public class LoginActivity extends AppCompatActivity implements LoginContract.View, RestManager.OnDataReceived { 

    private static final String TAG = "LoginActivity"; 
    LoginContract.Presenter mLoginPresenter; 
    LoginPresenter mPresenter; 
    Button bt_register, bt_login; 
    TextView tv_forgotpass; 
    EditText et_useranme, et_password; 
    CheckBox checkBox; 
    ProgressDialog mLoginDialog; 
    ProgressDialog mForgotPassDialog; 
    Toolbar toolbar; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 
     toolbar = (Toolbar) findViewById(R.id.login_screen_toolbar); 
     toolbar.setTitle("Login"); 
     mLoginDialog = new ProgressDialog(this); 
     mForgotPassDialog = new ProgressDialog(this); 
     bt_register = (Button) findViewById(R.id.bt_login_screen_register); 
     bt_login = (Button) findViewById(R.id.bt_login_screen_login); 
     mPresenter = new LoginPresenter(this); 
     tv_forgotpass = (TextView) findViewById(R.id.tv_login_screen_forgot_password); 
     et_useranme = (EditText) findViewById(R.id.et_login_screen_user_id); 
     et_password = (EditText) findViewById(R.id.et_login_screen_user_pass); 
     bt_register.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mPresenter.registerButtonClick(getApplicationContext()); 
      } 
     }); 
     checkBox = (CheckBox) findViewById(R.id.cb_login_screen_show_pass); 
     checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       if (isChecked) { 
        et_password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
       } else { 
        et_password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT); 
       } 

      } 
     }); 
     bt_login.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       DisplayUtils.showProgressDialog(mLoginDialog, "Logging In..."); 
       // TODO: 9/8/2016 do the validations here  
       mLoginPresenter.onLoginClicked(LoginActivity.this, LoginActivity.this, et_useranme.getText().toString(), et_password.getText().toString()); 
       //change the vals 
       //startActivity(new Intent(LoginActivity.this,DashboardActivity.class)); 
      } 
     }); 
     tv_forgotpass.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // check the username if exists on database..then make the 
       //following call 
       DisplayUtils.showProgressDialog(mForgotPassDialog, "Fetching your details..."); 
       mPresenter.forgotPasswordClick(LoginActivity.this, LoginActivity.this, et_useranme.getText().toString()); 
      } 
     }); 

    } 

    @Override 
    public void removeLoginDialog() { 
     DisplayUtils.dismissProgress(mLoginDialog); 
    } 

    @Override 
    public void startDashActivity() { 
     Intent i = new Intent(this, DashboardActivity.class); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(i); 
    } 

    @Override 
    public void startForgotPasswordActivity(UserInfo userInfo) { 
     Intent i = new Intent(this, ForgotPasswordActivity.class); 
     /*Toast.makeText(this, "email: " + userInfo.getEMailId().toString(), Toast.LENGTH_SHORT).show(); 
     Toast.makeText(this, "mobile: " + userInfo.getMobileNo().toString(), Toast.LENGTH_SHORT).show(); 
     Toast.makeText(this, "name: " + userInfo.getUserName().toString(), Toast.LENGTH_SHORT).show();*/ 
    // Toast.makeText(this, userInfo.toString(), Toast.LENGTH_SHORT).show(); 
     i.putExtra("name",userInfo.getUserName()); 
     // i.putExtra("name",userInfo.getUserId()); 
     i.putExtra("email",userInfo.getEMailId()); 
     i.putExtra("mobile",userInfo.getMobileNo()); 
    //  Toast.makeText(this, "All put", Toast.LENGTH_SHORT).show(); 
//  Toast.makeText(this, userInfo.getUserId().toString(), Toast.LENGTH_SHORT).show(); 
     i.putExtra("id",userInfo.getUserId().toString()); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(i); 
    } 

    @Override 
    public void setPresenter(LoginContract.Presenter presenter) { 
     mLoginPresenter = checkNotNull(presenter); 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
     // TODO: Call below method on click of login button 
     mLoginPresenter.start(); 
    } 

    @Override 
    public void onDataSuccess(Object object, int type) { 
     if (type == AppConstants.Extras.FOR_LOGIN) { 
      DisplayUtils.dismissProgress(mLoginDialog); 
      if (object instanceof UserInfo) { 
       UserInfo userInfo = (UserInfo) object; 
       //Log.d(TAG, "onDataSuccess: " + userInfo.toString()); 

       // Toast.makeText(this, userInfo.getUserName(), Toast.LENGTH_SHORT).show(); 
       // TODO: save the userInfo object in db 
       // to save it in DB 
       // ToDO: write below code in proper function (written in View interface) 
       //startActivity(new Intent(this, LoginActivity.class)); 
       //save to shared preffs 
       PreferencesHelper.writeToPreferences(getApplicationContext(),userInfo); 
       //  Toast.makeText(this,PreferencesHelper.getUser(getApplicationContext()).toString(), Toast.LENGTH_SHORT).show(); 
       startDashActivity(); 
       finish(); 
      } 
     } else if (type == AppConstants.Extras.FOR_FORGOTPASS) { 
      DisplayUtils.dismissProgress(mForgotPassDialog); 
     //  Toast.makeText(this, "inSide Success",  Toast.LENGTH_SHORT).show(); 
      if (object instanceof UserInfo) { 
       UserInfo userInfo = (UserInfo) object; 
     //  Toast.makeText(this, userInfo.getUserName(), Toast.LENGTH_SHORT).show(); 
       startForgotPasswordActivity(userInfo); 
      } 
     } 
    } 

    @Override 
    public void onDataFailure(String error, int type) { 
     if (type == AppConstants.Extras.FOR_LOGIN) { 
      DisplayUtils.dismissProgress(mLoginDialog); 
      Toast.makeText(this, error, Toast.LENGTH_SHORT).show(); 
     } else if (type == AppConstants.Extras.FOR_FORGOTPASS) { 
      DisplayUtils.dismissProgress(mForgotPassDialog); 
      Toast.makeText(this, error, Toast.LENGTH_SHORT).show(); 
     } 
    } 

    @Override 
    public void removeForgotDialog() { 
     DisplayUtils.dismissProgress(mForgotPassDialog); 
    } 
} 

这是我content_login.xml

<?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:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context=".view.LoginActivity" 
    tools:showIn="@layout/activity_login" 
    android:background="@android:color/white"> 


    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/activity_main" 
     android:layout_width="match_parent" 
     android:background="@color/colorPrimaryLight" 
     android:layout_height="wrap_content" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin"> 

     <TextView 
      android:text="PHONE NUMBER/EMAIL ID" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:id="@+id/textView" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:inputType="textPersonName" 
      android:ems="10" 
      android:layout_below="@+id/textView" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:id="@+id/et_login_screen_user_id" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:background="@drawable/rounded_edittext" 
      android:padding="20dp" 
      android:layout_marginTop="4dp" /> 

     <TextView 
      android:text="PASSWORD" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/et_login_screen_user_id" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_marginTop="16dp" 
      android:id="@+id/textView2" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:inputType="textPassword" 
      android:ems="10" 
      android:layout_below="@+id/textView2" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:id="@+id/et_login_screen_user_pass" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:padding="20dp" 
      android:background="@drawable/rounded_edittext" 
      android:layout_marginTop="4dp" /> 

     <CheckBox 
      android:text="Show Password" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/et_login_screen_user_pass" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:id="@+id/cb_login_screen_show_pass" 
      android:textColor="?android:attr/textColorTertiary" /> 

     <TextView 
      android:layout_marginRight="8dp" 
      android:textColor="@color/colorAccent" 
      android:text="Forgot Password" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/tv_login_screen_forgot_password" 
      android:layout_alignBaseline="@+id/cb_login_screen_show_pass" 
      android:layout_alignBottom="@+id/cb_login_screen_show_pass" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" /> 

    </RelativeLayout> 

    <LinearLayout 

     android:padding="20dp" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/activity_main" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true"> 

     <Button 
      android:id="@+id/bt_login_screen_login" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:layout_margin="20dp" 
      android:background="@drawable/rounded_button" 
      android:paddingBottom="20dp" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp" 
      android:paddingTop="20dp" 
      android:text="LOGIN" 
      android:textColor="@color/colorPrimaryLight" /> 

     <Button 
      android:layout_weight="1" 
      android:id="@+id/bt_login_screen_register" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:layout_margin="20dp" 
      android:paddingTop="20dp" 
      android:paddingBottom="20dp" 
      android:background="@drawable/rounded_button" 
      android:text="Register" 
      android:textColor="@color/colorPrimaryLight" /> 


    </LinearLayout> 


</RelativeLayout> 
+0

发布您的content_login.xml布局 – Raghavendra

+0

提供了一些更多的信息,即MainActivity代码 –

+0

我发布了这个xml @Raghavendra – yacky

回答

1

你的问题似乎是在你的ÈditTextandroid:background="@drawable/rounded_edittext"

正如你可以在堆栈跟踪看看你会得到一个暗示进一步下跌:

Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f020096 a=-1 r=0x7f020096}

而在你的XML布局你有EditText

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:ems="10" 
    android:layout_below="@+id/textView" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:id="@+id/et_login_screen_user_id" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:background="@drawable/rounded_edittext" <----------- 
    android:padding="20dp" 
    android:layout_marginTop="4dp" /> 

看看是否能绘制的是问题。

编辑:

确保资源文件放置在正确的资源文件夹中。例如,它应该在drawable而不是只有drawable-21

+0

这是我的rounded_edittext @raxelsson'<?xml version =“1.0”encoding =“ utf-8“?> android:shape =”rectangle“> ' – yacky

+0

@yacky你把你的drawable放在正确的资源文件夹中吗? 'res/drawable'? – raxelsson

+0

是的,我有@raxelsson – yacky