2016-06-15 24 views
5

systemem Android Studio 2.1.2, Windows 7.Błąd klasa pompowania - NestedScrollView - klasa nie znaleziono

I zastąpił Scrollview z NestedScrollView i teraz jestem coraz

android.view.InflateException : Binary plik XML linia nr 2: błąd klasa pompowania NestedScrollView

java.lang.ClassNotFoundException: nie znaleziono klasa "android.view.NestedScrollView" na ścieżce: /data/app/com.assemblyguide.remote -48 .apk

... kiedy wywołuję SetContentView() na tym pliku XML. Nie dostałem tego, gdy miałem tylko ScrollView.

Próbowałem czyszczenia i unieważniania pamięci podręcznej i odbudowy. XML wygląda tak. . .

<?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> 

Co oznacza ten błąd i jak mogę to naprawić?

Odpowiedz

17

Pełna nazwa klasowa to android.support.v4.widget.NestedScrollView. Zastąp element <NestedScrollView> na <android.support.v4.widget.NestedScrollView> i powinno działać poprawnie. Upewnij się, że biblioteka obsługi v4 znajduje się również w pliku build.gradle.

+0

Dzięki, ale ja nadal nie rozumiem: dlaczego nie ma tej flagi błędu w XML przy ** czasie budowania **? Co to jest biblioteka pomocnicza, tj. Jaka jest różnica między biblioteką wsparcia a zwykłymi klasami systemu Android? – user316117

+0

Biblioteka wsparcia jest szablonem niektórych funkcji systemu Android, które zostały dodane później. Na przykład widget "Pasek narzędzi" został dodany w wersji 21. Oznacza to, że jeśli chciałbyś użyć paska narzędzi w swojej aplikacji, twój minSdk musiałby być 21. Istnieje implementacja 'android.support.v7.widget.Toolbar', która pozwala nam używać paska narzędzi z minSdk równym 7. W odpowiedzi na pytanie: ponownie wygenerować błąd xml, nie jestem pewien, ale jeśli używasz Androida Studio, możesz kliknąć kartę "Projekt", a wyświetli się błąd. – chessdork

6

Trzeba dodać ten wiersz w zależności:

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

również jako chessdork powiedział to android.support.v4.widget.NestedScrollView nie NestedScrollView

+0

gdzie masz na myśli "zależności"? – user316117

+0

Jeśli korzystasz z Android Studio, znajdziesz go w pliku build.gradle –

Powiązane problemy