2015-07-22 1 views
1

Je suis en train d'utiliser TextInputLayout dans la bibliothèque de conception et j'ai ajouté des bibliothèques de support comme suit:android.support.design.widget.TextInputLayout donne InflateException

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.1' 
    compile 'com.google.android.gms:play-services:4.0.30' 
    compile "com.android.support:support-v4:+" 
    compile 'com.squareup.picasso:picasso:2.3.2' 
    compile 'com.nineoldandroids:library:2.4.0' 
    compile 'com.daimajia.slider:library:[email protected]' 
    compile 'com.navercorp.pulltorefresh:library:[email protected]' 
    compile fileTree(dir: 'libs', include: 'Parse-*.jar') 
    compile fileTree(dir: 'libs', include: 'ParseCrashReporting-*.jar') 
    compile 'uk.co.chrisjenx:calligraphy:2.1.0' 
    compile 'com.android.support:design:22.2.1' 
} 

Cependant, il me donne l'erreur suivante. Quelle pourrait en être la cause?

E/AndroidRuntime﹕ FATAL EXCEPTION: main 
     android.view.InflateException: Binary XML file line #12: Error inflating class android.support.design.widget.TextInputLayout 
       at android.view.LayoutInflater.createView(LayoutInflater.java:613) 
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
       at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
       at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
       at com.myproject.fragments.LostPropertyCheckFragment.onCreateView(LostPropertyCheckFragment.java:48) 
       at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) 
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955) 
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138) 
       at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) 
       at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501) 
       at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458) 
       at android.os.Handler.handleCallback(Handler.java:615) 
       at android.os.Handler.dispatchMessage(Handler.java:92) 
       at android.os.Looper.loop(Looper.java:137) 
       at android.app.ActivityThread.main(ActivityThread.java:4921) 
       at java.lang.reflect.Method.invokeNative(Native Method) 
       at java.lang.reflect.Method.invoke(Method.java:511) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 
       at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.reflect.InvocationTargetException 
       at java.lang.reflect.Constructor.constructNative(Native Method) 
       at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
       at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
                at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                at com.myproject.fragments.LostPropertyCheckFragment.onCreateView(LostPropertyCheckFragment.java:48) 
                at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) 
                at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955) 
                at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138) 
                at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) 
                at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501) 
                at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458) 
                at android.os.Handler.handleCallback(Handler.java:615) 
                at android.os.Handler.dispatchMessage(Handler.java:92) 
                at android.os.Looper.loop(Looper.java:137) 
                at android.app.ActivityThread.main(ActivityThread.java:4921) 
                at java.lang.reflect.Method.invokeNative(Native Method) 
                at java.lang.reflect.Method.invoke(Method.java:511) 
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 
                at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 
       at android.content.res.TypedArray.getColor(TypedArray.java:326) 
       at android.support.design.widget.CollapsingTextHelper.setCollapsedTextAppearance(CollapsingTextHelper.java:166) 
       at android.support.design.widget.TextInputLayout.<init>(TextInputLayout.java:124) 
                at java.lang.reflect.Constructor.constructNative(Native Method) 
                at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
                at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
                at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                at com.myproject.fragments.LostPropertyCheckFragment.onCreateView(LostPropertyCheckFragment.java:48) 
                at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) 
                at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955) 
                at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138) 
                at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) 
                at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501) 
                at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458) 
                at android.os.Handler.handleCallback(Handler.java:615) 
                at android.os.Handler.dispatchMessage(Handler.java:92) 
                at android.os.Looper.loop(Looper.java:137) 
                at android.app.ActivityThread.main(ActivityThread.java:4921) 
                at java.lang.reflect.Method.invokeNative(Native Method) 
                at java.lang.reflect.Method.invoke(Method.java:511) 
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 
                at dalvik.system.NativeStart.main(Native Method) 

xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginRight="10dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginTop="70dp" 
    android:background="@color/white" 
    android:clickable="true" 
    android:orientation="vertical" > 

    <android.support.design.widget.TextInputLayout 
     android:id="@+id/text_input_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <EditText 
      android:id="@+id/trackno" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="@string/track_no" 
      android:inputType="number" /> 
    </android.support.design.widget.TextInputLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="right|center_vertical" 
     android:layout_marginTop="5dp"> 

     <Button 
      android:id="@+id/check" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:background="@color/fav_light_green" 
      android:gravity="center" 
      android:padding="5dp" 
      android:text="@string/check" 
      android:textColor="@color/white" > 
     </Button> 
    </LinearLayout> 

</LinearLayout> 

fragment

public class LostPropertyCheckFragment extends Fragment { 

    EditText trackno; 
    Button check; 
    Dialog dialog; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Get back arguments 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // Defines the xml file for the fragment 
     View view = inflater.inflate(R.layout.lostpropertycheck_fragment, 
       container, false); 

     trackno = (EditText) view.findViewById(R.id.trackno); 
     check = (Button) view.findViewById(R.id.check); 

     check.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       if (trackno.getText().toString().trim().equalsIgnoreCase("")) { 
        Toast.makeText(
          getActivity(), 
          getActivity().getResources().getString(
            R.string.formwarning), Toast.LENGTH_LONG) 
          .show(); 
       } 

       else { 
        new checkLostProperty().execute(); 
       } 

      } 
     }); 

     return view; 
    } 

    private boolean isNetworkAvailable() { 
     ConnectivityManager connectivityManager = (ConnectivityManager) getActivity() 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager 
       .getActiveNetworkInfo(); 
     return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
    } 

    public static LostPropertyCheckFragment newInstance() { 
     LostPropertyCheckFragment fragment = new LostPropertyCheckFragment(); 

     return fragment; 
    } 

styles

<resources> 

    <!-- 
     Base application theme, dependent on API level. This theme is replaced 
     by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 

    --> 
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- 
      Theme customizations available in newer API levels can go in 
      res/values-vXX/styles.xml, while customizations related to 
      backward-compatibility can go here. 

     --> 
    </style> 

    <!-- Application theme. --> 
    <style name="AppTheme" parent="AppBaseTheme"> 
     <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
     <!--<item name="android:textViewStyle">@style/AppTheme.Widget.TextView</item>--> 
     <!-- <item name="textFieldStyle">@style/IconTextViewStyle</item>--> 
    </style> 

    <style name="IconTextViewStyle" 
     parent="android:Widget.TextView"> 
     <item name="fontPath">fonts/icomoon.ttf</item> 
    </style> 

    <attr name="textFieldStyle" 
     format="reference" /> 



    <!--<style name="AppTheme.Widget"/> 

    <style name="AppTheme.Widget.TextView" parent="android:Widget.Holo.Light.TextView"> 
     <item name="fontPath">fonts/opensansregular.ttf</item> 
    </style>--> 

</resources> 
+1

Ajouter le fichier XML – Asthme

+0

a ajouté le fichier xml –

+0

utilisez-vous l'activité appcompat? xml est bien .. – Asthme

Répondre

1

Vous devriez essayer quelques petites choses à résoudre le problème.

  • étendre votre activité de AppCompatActivity
  • étendre votre fragment de android.support.v4.app.Fragment (vous devrez ajouter la bibliothèque de soutien dans le fichier build.gradle, sinon ajouté).
  • Vous devriez utiliser la version 22.2.1 ou ultérieure de la bibliothèque de conception (au moment de la publication, la dernière version est 'com.android.support:design:23.0.0') pour un comportement correct de 'hint' sur la sucette et au-dessus dispositifs. Si vous utiliserez la version inférieure à 22.2.1, vous devrez faire face au problème discuté on stackOverflow. (Dans votre cas, vous utilisez déjà 22.2.1).
  • Au lieu d'utiliser EditText, utilisez android.support.v7.widget.AppCompatEditText.

    • Par exemple:

      <android.support.design.widget.TextInputLayout 
             android:id="@+id/tl_firstName" 
             android:layout_width="match_parent" 
             android:layout_height="wrap_content" 
             app:errorEnabled="true"> 
      
             <android.support.v7.widget.AppCompatEditText 
              android:id="@+id/editText_firstName" 
              style="@style/editProfile_editText" 
              android:layout_width="match_parent" 
              android:layout_height="wrap_content" 
              android:hint="First Name" 
              android:inputType="textPersonName" 
              android:singleLine="true" /> 
      
      </android.support.design.widget.TextInputLayout> 
      
2

Sans quoi que ce soit le changement dans mon gradle je simplement fixé mon problème en ajoutant:

app:hintTextAppearance="@android:style/TextAppearance.Medium" 

J'espère que cela peut aider quelqu'un

+0

Cela a résolu pour moi – yooouuri