找不到与给定名称匹配的资源:attr'android:keyboardNavigationCluster'

当我尝试使用ionic cordova run android --prod时,我目前在我的Ionic项目中遇到这个奇怪的错误。 我尝试删除和读取平台,删除和读取节点模块,切换npm和节点版本无济于事。

问:有没有人有任何想法如何解决这个神秘的问题?

 C:\...\platforms\android\build\intermediates\res\merged\debug\values-v26\values-v26.xml:15: 

error: Error: No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.

 FAILED BUILD FAILED Total time: 26.595 secs FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':processDebugResources'. > com.android.ide.common.process.ProcessException: Failed to execute aapt * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Error: cmd: Command failed with exit code 1 Error output: Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. C:\...\platforms\android\build\intermediates\res\merged\debug\values-v26\values-v26.xml:15:21-54: AAPT: No resource found that matches the given name: attr 'android:keyboardNavigationCluster'. C:\...\platforms\android\build\intermediates\res\merged\debug\values-v26\values-v26.xml:15: error: Error: No resource found that matches the given name: attr 'android:keyboardNavigationCluster'. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':processDebugResources'. > com.android.ide.common.process.ProcessException: Failed to execute aapt * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. [ERROR] An error occurred while running cordova run android (exit code 1). Ionic info: (run ionic info from a terminal/cmd prompt and paste output below): cli packages: (C:…\node_modules) @ionic/cli-utils : 1.12.0 ionic (Ionic CLI) : 3.12.0 global packages: cordova (Cordova CLI) : 7.0.0 local packages: @ionic/app-scripts : 3.0.0 Cordova Platforms : android 6.2.3 Ionic Framework : ionic-angular 3.7.1 System: Android SDK Tools : 25.2.5 Node : v6.11.4 npm : 3.10.10 OS : Windows 10 Misc: backend : legacy 

编辑:这里的每个请求是我的cordova插件列表

  <plugin name="cordova-plugin-app-version" spec="^0.1.9" /> <plugin name="cordova-plugin-camera" spec="^2.4.1"> <plugin name="cordova-plugin-compat" spec="^1.2.0" /> <plugin name="cordova-plugin-device" spec="^1.1.6" /> <plugin name="cordova-plugin-file" spec="^4.3.3" /> <plugin name="cordova-plugin-file-transfer" spec="^1.6.3" /> <plugin name="cordova-plugin-filepath" spec="^1.1.0" /> <plugin name="cordova-plugin-geolocation" spec="^2.4.3"> <variable name="GEOLOCATION_USAGE_DESCRIPTION" value="To determine geolocation for clock in/out purposes." /> </plugin> <plugin name="cordova-plugin-inappbrowser" spec="^1.7.1" /> <plugin name="cordova-plugin-splashscreen" spec="^4.0.3" /> <plugin name="cordova-plugin-statusbar" spec="^2.2.3" /> <plugin name="cordova-plugin-whitelist" spec="^1.3.2" /> <plugin name="cordova.plugins.diagnostic" spec="^3.6.8" /> <engine name="android" spec="~6.2.3" /> 

这很可能与cordova诊断插件有关。 尝试安装应该解决问题的版本3.7.1

 cordova plugin add cordova.plugins.diagnostic@3.7.1 

根本原因是gradle正在寻找它找不到的v26资源。 这里详细解释。

您可能还需要将cordova-android更新到版本6.3.0cordova platform add android@6.3.0 )并升级到最新的Android SDK工具(通过Android Studio)。 当你这样做的时候不要忘记删除cordova-plugin-compat