错误'未找到资源标识符'使用Android示例项目

时间:2015-09-16 11:33:31

标签: android

我正在尝试打开Android示例项目 - Android Studio中的导航抽屉,但在构建时遇到错误。

以下是重现它的步骤:

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

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

    Android Studio版本为 - 1.4 Beta 4

    提前感谢您的帮助。

4 个答案:

答案 0 :(得分:25)

编译器在activity_navigation_drawer.xml

中找不到此属性
app:layoutManager="LinearLayoutManager"

解决此问题

  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"/>
    
  2. 按下Gradle Sync按钮

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

    LinearLayoutManager mLinearLayoutmanager = new LinearLayoutManager(this);
    mDrawerList.setLayoutManager(mLinearLayoutmanager);
    
  4. 所以你的代码现在看起来像这样:

    @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);
        ....
    
    祝你好运

    修改: 原始xml代码不再有效的原因很可能是xmlns:app="http://schemas.android.com/apk/res-auto"命名空间不再支持layoutManager属性。

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

答案 1 :(得分:2)

您当然可以通过xml定义LayoutManagers等。这是使用本机GridLayoutManager的示例:

<android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/posters_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:orientation="vertical"
    app:layoutManager="android.support.v7.widget.GridLayoutManager"
    app:reverseLayout="false"
    app:spanCount="3"
    app:stackFromEnd="false" />

如果要使用自定义LayoutManager,请遵循此处定义的规则:

R.attr.html#layoutManager

答案 2 :(得分:0)

只需将build.gradle文件(模块)升级到最新版本,我就试了一下,现在一切正常。

的引用:

  

https://github.com/googlesamples/android-NavigationDrawer/issues/9

答案 3 :(得分:0)

你确定gradle解决了所有依赖关系吗?当我偶尔从依赖项中删除了recyclerview支持库时,我遇到了同样的问题:

  compile 'com.android.support:recyclerview-v7:25.0.1'