2017-10-09 93 views
1

当我尝试使用ionic cordova run android --prod时,我目前在我的Ionic项目中遇到了这个奇怪的错误。我尝试删除和读取平台,删除和读取节点模块,并切换npm和节点版本无济于事。找不到与给定名称匹配的资源: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'.

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 

编辑:每请求,这是我的科尔多瓦插件

<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" /> 
+0

请问您可以添加您正在使用的cordova插件的列表吗? – David

+0

完成@David,让我知道你是否需要其他信息来诊断问题。 – Jason

回答

2

这是最有可能涉及到科尔多瓦诊断插件的列表。尝试安装版本3.7.1应该解决这个问题:

cordova plugin add [email protected] 

的根本原因是gradle这个正在寻找V26资源,它没有找到。详细解释here

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

+0

我现在得到这个错误失败的任务':transformClassesWithDexForDebug'。 > com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.dex.DexException:多个dex文件定义了Lorg/apache /科尔多瓦/ BuildHelper; 错误:cmd:命令失败,退出代码为1错误输出: 注意:某些输入文件使用或覆盖弃用的API。 注意:使用-Xlint:deprecation重新编译以获取详细信息。 注意:某些输入文件使用或覆盖弃用的API。 注意:使用-Xlint:deprecation重新编译以获取详细信息。 – Jason

+0

使用版本6.3.0时必须删除cordova-plugin-compat,因为它的代码现在包含在cordova-android中。 'cordova plugin rm cordova-plugin-compat --force' – David

+0

现在我刚刚遇到这个问题> cordova prepare android 错误:找不到插件“cordova-plugin-compat”的plugin.xml。请尝试再次添加它。 [错误]运行cordova prepare android(退出代码1)时发生错误。 – Jason

相关问题