0

在这里工作是在即时运行不工作的情况下:即时运行不与布局21

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); 
} 

视图中layoutR.id.toolbar_shadow。都好。

但是,如果您在layout-21中查看不包含R.id.toolbar_shadow的视图,那么当您将应用编译为例如Api 23设备gradle将失败:

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

任何想法来解决这个问题?


更新:按要求布局:

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

你可以显示布局文件吗?至少有关部分。 – CaptJak

+0

@CaptJak更新 – Diolor

+0

它虽然建立正确?不使用即时运行? – CaptJak

回答

0

好找到解决方案手动添加缺少的ID在资源的开发:

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

虽然这很奇怪,可能提交错误报告? – CaptJak