2016-06-15 21 views
5

esecuzione Android 2.1.2 Studio, Windows 7.Errore di gonfiaggio classe - NestedScrollView - classe non trovato

ho sostituito uno ScrollView con un NestedScrollView e adesso mi sto

android.view.InflateException : Binary file XML linea # 2: Errore classe di gonfiaggio NestedScrollView

java.lang.ClassNotFoundException: non trovare la classe "android.view.NestedScrollView" sul percorso: /data/app/com.assemblyguide.remote -48 .apk

... quando chiamo SetContentView() su quel file XML. Non l'ho capito quando avevo solo un ScrollView.

Ho provato a pulire e invalidare la cache e la ricostruzione. L'XML sembra così. . .

<?xml version="1.0" encoding="utf-8"?> 
<NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <!-- This linear layout is because the scrollview can have only 1 direct child --> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <!-- Relative layout for Workorder --> 
     <RelativeLayout 
      android:id="@+id/rellayWorkorder" 
      android:background="#383838" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="30dp" 
      android:layout_marginBottom="2dp"> 
      <TextView 
       android:id="@+id/workorderlabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_margin="2dp" 
       android:gravity="left" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="Work Order:"/> 

      <TextView 
       android:id="@+id/workorderContent" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_margin="2dp" 
       android:gravity="right" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="---workorder---"/> 
     </RelativeLayout> 


     <!-- Relative layout for Required Time 
    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal"></FrameLayout> --> 

     <RelativeLayout 
      android:id="@+id/rellayRequiredTime" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="30dp" 
      android:layout_marginBottom="2dp"> 
      <TextView 
       android:id="@+id/requiredTimelabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_margin="2dp" 
       android:gravity="left" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="Required Time:"/> 

      <TextView 
       android:id="@+id/requiredTimeContent" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_margin="2dp" 
       android:gravity="right" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="--- 00 minutes ---"/> 
     </RelativeLayout> 

     <!-- Relative layout for Time remaining --> 
     <RelativeLayout 
      android:id="@+id/rellayTimeRemaining" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="30dp" 
      android:layout_marginBottom="2dp"> 
      <TextView 
       android:id="@+id/timeremaininglabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_margin="2dp" 
       android:gravity="left" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="Time Remaining:"/> 

      <TextView 
       android:id="@+id/tviewtimeremainingContent" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_margin="2dp" 
       android:gravity="right" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="--- 0:00:00---"/> 
     </RelativeLayout> 

     <!-- Linear layout for Record Start/Record End buttons --> 
     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" > 
      <Button 
       android:id="@+id/debulkrecordStart" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="6dp" 
       android:layout_marginRight="4dp" 
       android:gravity="center" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:onClick="OnSetRecordStartTimeClick" 
       android:text="Record Start"/> 
      <Button 
       android:id="@+id/debulkrecordEnd" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="6dp" 
       android:layout_marginRight="4dp" 
       android:gravity="center" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:onClick="OnSetRecordEndTimeClick" 
       android:text="Record End"/> 
     </LinearLayout> 

     <!-- Relative layout for Vacuum level --> 
     <RelativeLayout 
      android:id="@+id/rellayvacuumlevel" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="2dp"> 
      <TextView 
       android:id="@+id/vaclabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_margin="2dp" 
       android:gravity="left" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="Vacuum Level (inches Hg):"/> 
      <EditText 
       android:id="@+id/vacleveledit" 
       android:layout_width="120dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight = "true" 
       android:layout_margin="2dp" 
       android:gravity="left" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:inputType="text|textCapCharacters" 
       android:text="vac level" 
       android:layout_marginRight="2dp" 
       android:layout_marginTop="2dp" 
       android:layout_marginBottom="2dp"/> 
     </RelativeLayout> 

     <!-- Relative layout for Vac Gauge Equipment # --> 
     <RelativeLayout 
      android:id="@+id/rlayvacuumGauge" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="2dp"> 
      <TextView 
       android:id="@+id/vacgaugelabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_margin="2dp" 
       android:gravity="left" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="Vac Gauge Equipment #:"/> 
      <EditText 
       android:id="@+id/vacgaugeedit" 
       android:layout_width="120dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight = "true" 
       android:layout_margin="2dp" 
       android:gravity="left" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:inputType="text|textCapCharacters" 
       android:text="equip. #"/> 
     </RelativeLayout> 



     <!-- Relative layout for Calibration Due date --> 
     <RelativeLayout 
      android:id="@+id/rlaycalibdue" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="2dp"> 
      <TextView 
       android:id="@+id/calibduelabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_margin="2dp" 
       android:gravity="left" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="Calibration Due Date:"/> 
      <EditText 
       android:id="@+id/calibdueedit" 
       android:layout_width="120dp" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight = "true" 
       android:layout_margin="2dp" 
       android:gravity="left" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:inputType="text|textCapCharacters" 
       android:text="mm/dd/yyyy"/> 
     </RelativeLayout> 


     <CalendarView 
      android:id="@+id/debulkcalendar" 
      android:layout_width="300dp" 
      android:layout_height="250dp" 
      android:minDate="01/01/2016" 
      android:maxDate="11/30/2016" 
      /> 


     <!-- this linear layout is for the debulk override and done buttons --> 
     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" > 
      <Button 
       android:id="@+id/debulkOverride" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="6dp" 
       android:layout_marginRight="4dp" 
       android:onClick="OnResetClick" 
       android:gravity="center" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="Override"/> 
      <Button 
       android:id="@+id/debulkDone" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="6dp" 
       android:layout_marginRight="2dp" 
       android:onClick="onDoneBtnClick" 
       android:gravity="center" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="Done"/> 
     </LinearLayout> 

    </LinearLayout> 

</NestedScrollView> 

Che cosa significa questo errore e come lo risolvo?

risposta

17

Il nome completo della classe è android.support.v4.widget.NestedScrollView. Sostituire l'elemento <NestedScrollView> con <android.support.v4.widget.NestedScrollView> e dovrebbe funzionare correttamente. Assicurati di avere anche la libreria di supporto v4 nel tuo file build.gradle.

+0

Grazie, ma io ancora non capisco: perché non lo fa un errore in questo flag l'XML al ** tempo di costruzione **? Inoltre, qual è la libreria di supporto, cioè qual è la differenza tra la libreria di supporto e solo le normali classi di Android? – user316117

+0

La libreria di supporto è un backport di alcune funzionalità di Android aggiunte in seguito. Ad esempio, il widget 'Toolbar' è stato aggiunto in v21. Ciò significa che se volessi utilizzare una barra degli strumenti nella tua app, il tuo minSdk avrebbe bisogno di essere 21. C'è un'implementazione di 'android.support.v7.widget.Toolbar' che ci permette di usare la barra degli strumenti con un minSdk di 7. In re: build time xml error, non sono sicuro, ma se utilizzi Android Studio, puoi fare clic sulla scheda "Design" e mostrerà un errore. – chessdork

6

È necessario aggiungere questa linea in dipendenze:

compile 'com.android.support:support-v4:23.4.0' 

anche come ha detto chessdork E 'android.support.v4.widget.NestedScrollView non NestedScrollView

+0

dove intendi per "dipendenze"? – user316117

+0

Se stai usando Android Studio, lo troverai nel file build.gradle –