GVKun编程网logo

找不到与给定名称匹配的资源:attr 'android:keyboardNavigationCluster'。更新到支持库 26.0.0 时

18

对于找不到与给定名称匹配的资源:attr'android:keyboardNavigationCluster'。更新到支持库26.0.0时感兴趣的读者,本文将提供您所需要的所有信息,并且为您提供关于A

对于找不到与给定名称匹配的资源:attr 'android:keyboardNavigationCluster'。更新到支持库 26.0.0 时感兴趣的读者,本文将提供您所需要的所有信息,并且为您提供关于Android Studio检索项目的父项时出错:找不到与给定名称“ Theme.AppCompat.Light.DarkActionBar”匹配的资源、android – NavigationView OnNavigationItemSelectedListener未被调用、android – NavigationView setNavigationItemSelectedListener此API标记为支持库的内部,不应从应用程序访问、android – ‘无法解析符号’和’找不到与给定名称匹配的资源’ – 不重复的宝贵知识。

本文目录一览:

找不到与给定名称匹配的资源:attr 'android:keyboardNavigationCluster'。更新到支持库 26.0.0 时

找不到与给定名称匹配的资源:attr 'android:keyboardNavigationCluster'。更新到支持库 26.0.0 时

我在更新到最新的支持库版本 26.0.0 ( https://developer.android.com/topic/libraries/support-
library/revisions.html#26-0-0 ) 时遇到了这个问题:

错误:(18, 21) 找不到与给定名称匹配的资源:attr ‘android:keyboardNavigationCluster’。

/.../app/build/intermediates/res/merged/beta/debug/values-v26/values-v26.xmlError:(15, 21) No resource found that matches the given name: attr ''android:keyboardNavigationCluster''.Error:(18, 21) No resource found that matches the given name: attr ''android:keyboardNavigationCluster''.Error:(15, 21) No resource found that matches the given name: attr ''android:keyboardNavigationCluster''.Error:(18, 21) No resource found that matches the given name: attr ''android:keyboardNavigationCluster''.Error:Execution failed for task '':app:processBetaDebugResources''.

com.android.ide.common.process.ProcessException:无法执行 aapt

该文件来自支持库:

<style name="Base.V26.Widget.AppCompat.Toolbar" parent="Base.V7.Widget.AppCompat.Toolbar">    <item name="android:touchscreenBlocksFocus">true</item>    <item name="android:keyboardNavigationCluster">true</item></style>

我们使用以下版本:

ext.COMPILE_SDK_VERSION = 26ext.BUILD_TOOLS_VERSION = "26.0.1"ext.MIN_SDK_VERSION = 17ext.TARGET_SDK_VERSION = 26ext.ANDROID_SUPPORT_LIBRARY_VERSION = "26.0.0"ext.GOOGLE_PLAY_SERVICES_LIBRARY_VERSION = "11.0.2"

compile ''com.android.support:appcompat-v7:'' + ANDROID_SUPPORT_LIBRARY_VERSIONcompile ''com.android.support:design:'' + ANDROID_SUPPORT_LIBRARY_VERSIONcompile ''com.android.support:recyclerview-v7:'' + ANDROID_SUPPORT_LIBRARY_VERSION

有任何想法吗?

答案1

小编典典

我能够通过更新 gradle 中的 sdk 版本和工具来解决它 compileSdkVersion 26 buildToolsVersion"26.0.1"

support library 26.0.1
https://developer.android.com/topic/libraries/support-
library/revisions.html#26-0-1

Android Studio检索项目的父项时出错:找不到与给定名称“ Theme.AppCompat.Light.DarkActionBar”匹配的资源

Android Studio检索项目的父项时出错:找不到与给定名称“ Theme.AppCompat.Light.DarkActionBar”匹配的资源

我是android studio的初学者,我已经开始创建名为Hello World的应用程序,但始终在gradle build选项卡中显示2个错误.我面临的错误是:

Error:(1) Error retrieving parent for item: No resource found that matches the given name ‘Theme.AppCompat.Light.DarkActionBar’.

Error:Execution Failed for task ‘:app:processDebugResources’.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘e:\Program Files\Android\sdk\build-tools\22.0.1\aapt.exe” finished with non-zero exit value 1

这是我的build.gradle

apply plugin: 'com.android.application'
android {
    compileSdkVersion 22
    buildToolsversion '22.0.1'

    defaultConfig {
        applicationId "com.example.android.helloworld"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
} dependencies {} 

我现在该怎么办才能正确运行我的程序,请帮助我……..

解决方法:

主题“ Theme.AppCompat.Light.DarkActionBar”在模块“ com.android.support:appcompat-v7”中声明

因此,您在build.gradle中需要这样的东西.

dependencies {
    compile 'com.android.support:appcompat-v7:22.1.1'
}

另外,您可以使用“ Theme.Holo.Light.DarkActionBar”代替,它是较新的android版本的一部分,不需要额外的模块.

创建“ Theme.AppCompat.xxx”和“ com.android.support:appcompat-v7”是为了允许旧的android版本(如android-2.2)使用较新的android版本引入的较新功能.

android – NavigationView OnNavigationItemSelectedListener未被调用

我试图在我的应用程序中使用来自 Android支持设计库的NavigationView.由于某些原因OnNavigationItemSelected监听器未被调用.这是我的代码 @H_301_2@活动布局

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/drawer_header"
    app:menu="@menu/drawer_menu" />

        <FrameLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
@H_301_2@活动onCreate()

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(getLayoutID());

    toolbar = (Toolbar) findViewById(R.id.activity_toolbar);
    setSupportActionBar(toolbar);
    toolbar.inflateMenu(R.menu.common_menu);
    final ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setHomeAsUpIndicator(R.drawable.ic_menu_white_24dp);
        actionBar.setdisplayHomeAsUpEnabled(true);
    }

    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    navigationView = (NavigationView) findViewById(R.id.navigation_view);
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(final MenuItem menuItem) {
            Snackbar.make(contentLayout,menuItem.getTitle() + " pressed",Snackbar.LENGTH_LONG).show();
            menuItem.setChecked(true);
            // allow some time after closing the drawer before performing real navigation
            // so the user can see what is happening
            drawerLayout.closeDrawer(GravityCompat.START);
            mDrawerActionHandler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    navigate(menuItem.getItemId());
                }
            },DRAWER_CLOSE_DELAY_MS);
            drawerLayout.closeDrawers();
            return true;
        }

    });
    usernameTextView = (TextView) findViewById(R.id.drawer_header_username);                  
    usernameTextView.setText(getAppDContext().getAccount().getUsername());
   }

解决方法

当你做一个xml时,你应该在BaseLayout(FrameLayout,LinearLayout等)之后写下NavigationView
<DrawerLayout>
    <FrameLayout />
    <NavigationView />
</DrawerLayout>

android – NavigationView setNavigationItemSelectedListener此API标记为支持库的内部,不应从应用程序访问

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /*Ini UI*/

        mToolbar = (Toolbar) findViewById(t);
        setupToolbar();

        mNavigationRv = (RecyclerView) findViewById(R.id.navigation_rv);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer);
        mNavigationView = (NavigationView) findViewById(R.id.nv);

        mNavigationRv.setLayoutManager(new linearlayoutmanager(this, linearlayoutmanager.HORIZONTAL, false));
        mNavigationAdapter = new NavigationAdapter(new ArrayList<String>(), this, this);
        mNavigationRv.setAdapter(mNavigationAdapter);
        mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, 0, 0);
        mNavigationView.setNavigationItemSelectedListener(this);
        getSupportActionBar().setdisplayHomeAsUpEnabled(true);
    }

Android工作室给了我一个错误

“This API is marked as internal for the support library and should not
be accessed from apps”

for setNavigationItemSelectedListener和setCheckedItem.

请帮忙.

解决方法:

更新到支持库25.0.1后,此处相同.

这是一个警告,它适用于NavigationView的所有公共方法,但它很烦人,因为Android Studio将其标记为错误.

@SuppressWarnings(“RestrictedApi”)暂时解决它.

编辑
看起来这是Android Studio不支持库的问题.
使用AS 2.3 Canary 3我没有看到任何警告.

android – ‘无法解析符号’和’找不到与给定名称匹配的资源’ – 不重复

android – ‘无法解析符号’和’找不到与给定名称匹配的资源’ – 不重复

我昨天在Android Studio中打开了我的项目,随处可见“无法解析符号”作为描述.这是完全随机的,因为自上次我打开项目以来,对项目或AS都没有进行任何更改.我最终将Android Studio更新为2.0并尝试了一系列我在网上找到的解决方案,但没有任何效果.

像this一样,我已经尝试过了:

>重建项目
>清理项目
>与Gradle文件同步
>关闭项目,关闭AS并重新启动/重新打开
>文件>使高速缓存/重新启动无效
>检查Lint,没有看到任何明显的东西
>在SDK管理器中仔细检查所有支持库是否是最新的
>检查我的Build.gradle,虽然没有变化,但它和往常一样,它一直在工作的方式.

我也尝试了以下步骤(从接受的答案):

>退出Android Studio
>备份ymyour项目
>删除所有.iml文件和.idea文件夹
>重新启动Android Studio并重新导入项目

我也尝试过:

>删除build.gradle中的’proguard’条目
>在首选项中更改为“使用默认gradle包装器”

另一个解决方案是在build.gradle中移动’buildTypes’,但’buildTypes’已经在Android部分的底部

如果“复制”是通过做一些不能解决我的问题的事情来解决同一问题的人,请不要将此标记为重复.

以下是一些截图:

enter image description here

如您所见,颜色“白色”确实存在:

enter image description here

R错误无处不在:

enter image description here

这些错误也无处不在:

enter image description here

为什么有两个res目录,为什么具有必要资源的目录是java目录的子目录?这有关系吗?截图:

enter image description here

编辑:我在主res目录中创建了一个drawable目录,并添加了一个不会被构建变体拾取的drawable.它删除了相关的“无法解析符号”错误.但是当我删除主res并尝试将java子目录中的整个res目录移动到主目录时,我收到以下错误:

enter image description here

编辑:我通过删除外部res目录,复制java内部目录,将其粘贴到主目录然后删除java目录中的目录,设法无错误地构建.这些如何像我不知道的那样四处移动.可能是因为遵循了再次删除和导入项目的“解决方案”.它是否实际在设备上正常运行我不知道Android Studio是否会在最后20-30分钟内挂起(有时会这样).如果是这样的话,我可以用我最后解决问题的方式回答我自己的问题.

解决方法:

该错误显示您在颜色常量中没有白色值.
请检查所有资源文件(colors.xml,strings.xml等) – 你有线
< color name =“white”> #FFFFFF< / color>在其中一个?

今天的关于找不到与给定名称匹配的资源:attr 'android:keyboardNavigationCluster'。更新到支持库 26.0.0 时的分享已经结束,谢谢您的关注,如果想了解更多关于Android Studio检索项目的父项时出错:找不到与给定名称“ Theme.AppCompat.Light.DarkActionBar”匹配的资源、android – NavigationView OnNavigationItemSelectedListener未被调用、android – NavigationView setNavigationItemSelectedListener此API标记为支持库的内部,不应从应用程序访问、android – ‘无法解析符号’和’找不到与给定名称匹配的资源’ – 不重复的相关知识,请在本站进行查询。

本文标签: