当我尝试使用 ionic cordova run android --prod
时,我目前在 Ionic 项目中遇到了这个奇怪的错误。我尝试过删除和读取平台、删除和读取 Node 模块以及切换 npm 和 Node 版本,但均无济于事。
问题:有人知道如何解决这个神秘问题吗?
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 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c5a6aab7a1aab3a4ebb5a9b0a2acabb6eba1aca4a2abaab6b1aca685f6ebf2ebf4" rel="noreferrer noopener nofollow">[email protected]</a>
根本原因是 gradle 正在寻找 v26 资源,但没有找到。更详细解释here .
您可能还需要将 cordova-android 更新到版本 6.3.0
( cordova platform add <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a9c8c7cddbc6c0cde99f879a8799" rel="noreferrer noopener nofollow">[email protected]</a>
) 并升级到最新的 Android SDK 工具(通过 Android Studio)。不要忘记删除 cordova-plugin-compat
当你这样做时。
关于android - 找不到与给定名称匹配的资源 : attr ‘android:keyboardNavigationCluster’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46653307/