使用Android示例项目时出现错误'找不到资源标识符'

Liu*_*ing 16 android

我正在尝试在Android Studio中打开Android示例项目 - Navigation Drawer,但在构建它时遇到错误.

这些是重现它的步骤:

  1. 在Android Studio欢迎页面中,选择导入Android代码示例
  2. 搜索导航抽屉,选择它并单击"下一步"
  3. 指定项目位置并单击"完成"

错误:(43)在'com.example.android.navigationdrawer'包中找不到属性'layoutManager'的资源标识符

Android Studio版本为 - 1.4 Beta 4

在此先感谢您的帮助.

RWI*_*WIL 25

编译器在以下位置找不到此属性activity_navigation_drawer.xml:

app:layoutManager="LinearLayoutManager"
Run Code Online (Sandbox Code Playgroud)

解决这个问题

  1. 从XML中删除此属性,以便您的Recyclerview如下所示:

    <android.support.v7.widget.RecyclerView
    android:id="@+id/left_drawer"
    android:scrollbars="vertical"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="left|start"
    android:choiceMode="singleChoice"
    android:divider="@null"/>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 按下Gradle Sync按钮

  3. NavigationDrawerActivity,在OnCreate()中添加以下2行代码;

    LinearLayoutManager mLinearLayoutmanager = new LinearLayoutManager(this);
    mDrawerList.setLayoutManager(mLinearLayoutmanager);
    
    Run Code Online (Sandbox Code Playgroud)

所以你的代码现在看起来像这样:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navigation_drawer);

    mTitle = mDrawerTitle = getTitle();
    mPlanetTitles = getResources().getStringArray(R.array.planets_array);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (RecyclerView) findViewById(R.id.left_drawer);

    LinearLayoutManager mLinearLayoutmanager = new LinearLayoutManager(this);
    mDrawerList.setLayoutManager(mLinearLayoutmanager);
    ....
Run Code Online (Sandbox Code Playgroud)

祝好运

编辑:原始xml代码不再起作用的原因很可能是xmlns:app="http://schemas.android.com/apk/res-auto"命名空间不再支持该layoutManager属性.

有关命名空间的更多信息,请访问:https://stackoverflow.com/a/26692768/3708094

  • 有效,但也许有点推理为什么xml配置不起作用? (2认同)