0

Hier ist ein Fall, der Instant-Lauf in AS nicht funktioniert:Instant-Ausführung nicht mit Layout-21 arbeiten

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    toolbar.setElevation(visible ? getResources().getDimension(R.dimen.elevation_toolbar) : 0); 
} else { 
    View toolbarShadow = findViewById(R.id.toolbar_shadow); 
    toolbarShadow.setVisibility(visible ? View.VISIBLE : View.GONE); 
} 

Der Blick in layout die R.id.toolbar_shadow hat. Alles gut.

Wenn Sie jedoch eine Ansicht in layout-21 haben, die die R.id.toolbar_shadow nicht enthält, dann wenn Sie die App zu einem z. Api 23 Gerät gradle fehl mit:

Error:(1046, 42) error: cannot find symbol variable toolbar_shadow 

Irgendwelche Ideen, diese zu lösen?


aktualisieren:

res/layout/actionbar.xml:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    ... > 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     ... /> 

    <View 
     android:id="@+id/toolbar_shadow" 
     ... /> 

</LinearLayout> 

res/layout-21/actionbar.xml:

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar" 
      ... /> 
+0

Können Sie die Layoutdatei anzeigen? Zumindest der relevante Teil. – CaptJak

+0

@CaptJak aktualisiert – Diolor

+0

Es baut aber richtig? Instant Run nicht verwenden? – CaptJak

Antwort

0

Ok die Lösung manuell hinzugefügt den fehlenden ID in den resourses gefunden als die Layouts angefordert :

<!--To make Instant Run work if these ids are not in 21+--> 
<item name="toolbar_shadow" type="id"/> 
+0

Das ist seltsam, vielleicht einen Fehlerbericht einreichen? – CaptJak