Ionic Android找不到与给定名称匹配的资源.. cardBackgroundColor

时间:2016-04-13 10:06:30

标签: android cordova ionic-framework

在尝试构建项目时遇到Ionic问题。在:processDebugResources我收到如下错误:

Failed to generate resource table for split ''
/Applications/MAMP/htdocs/APP/consumer/platforms/android/build/intermediates/res/debug/values-v23/values.xml:6: error: Error: No resource found that matches the given name (at 'cardBackgroundColor' with value '?android:attr/colorBackgroundFloating').

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processDebugResources'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Users/johnhoulder/Library/Android/sdk/build-tools/23.0.3/aapt package -f --no-crunch -I /Users/johnhoulder/Library/Android/sdk/platforms/android-22/android.jar -M /Applications/MAMP/htdocs/APP/consumer/platforms/android/build/intermediates/manifests/full/debug/AndroidManifest.xml -S /Applications/MAMP/htdocs/APP/consumer/platforms/android/build/intermediates/res/debug -A /Applications/MAMP/htdocs/APP/consumer/platforms/android/build/intermediates/assets/debug -m -J /Applications/MAMP/htdocs/APP/consumer/platforms/android/build/generated/source/r/debug -F /Applications/MAMP/htdocs/APP/consumer/platforms/android/build/intermediates/res/resources-debug.ap_ --debug-mode --custom-package com.munch_delivery.app -0 apk --output-text-symbols /Applications/MAMP/htdocs/APP/consumer/platforms/android/build/intermediates/symbols/debug
  Error Code:
    1
  Output:
    Failed to generate resource table for split ''
    /Applications/MAMP/htdocs/APP/consumer/platforms/android/build/intermediates/res/debug/values-v23/values.xml:6: error: Error: No resource found that matches the given name (at 'cardBackgroundColor' with value '?android:attr/colorBackgroundFloating').



* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.959 secs

/Applications/MAMP/htdocs/APP/consumer/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                    ^
Error code 1 for command: /Applications/MAMP/htdocs/APP/consumer/platforms/android/gradlew with args: cdvBuildDebug,-b,/Applications/MAMP/htdocs/APP/consumer/platforms/android/build.gradle,-PcdvBuildArch=arm,-Dorg.gradle.daemon=true

插件:

  • 科尔多瓦-插件-facebook4
  • 科尔多瓦-插件白名单
  • onesignal-科尔多瓦-插件

的AndroidManifest.xml:

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="com.munch_delivery.app" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/fb_app_id" />
        <meta-data android:name="com.facebook.sdk.ApplicationName" android:value="@string/fb_app_name" />
        <activity android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/fb_app_name" android:name="com.facebook.FacebookActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <amazon:enable-feature android:name="com.amazon.device.messaging" android:required="false" xmlns:amazon="http://schemas.amazon.com/apk/res/android" />
        <service android:exported="false" android:name="com.onesignal.ADMMessageHandler" />
        <receiver android:name="com.onesignal.ADMMessageHandler$Receiver" android:permission="com.amazon.device.messaging.permission.SEND">
            <intent-filter>
                <action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
                <action android:name="com.amazon.device.messaging.intent.RECEIVE" />
                <category android:name="com.munch_delivery.app" />
            </intent-filter>
        </receiver>
    </application>
    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
</manifest>

编辑:

通过将所有com.facebook.android:facebook-android-sdk:4.+更改为com.facebook.android:facebook-android-sdk:4.8.0来管理以查找临时解决方案。对此有任何永久的解决方案,或者这是正确的方法吗?

5 个答案:

答案 0 :(得分:6)

对于那些因为同样的原因寻找破损的phonegap构建应用程序解决方案的可怜人,这里是如何在config.xml中的插件声明中使用特定的github提交:

<plugin spec="https://github.com/jeduan/cordova-plugin-facebook4#aff9a08a86cc6c6a18019f7adc2896ddf97c11cd" source="git" >
  <param name="APP_ID" value="YOUR_APP_ID"/>
  <param name="APP_NAME" value="YOUR_APP_NAME"/>
</plugin> 

答案 1 :(得分:3)

所以这显然是在插件中修复但尚未发布

https://github.com/jeduan/cordova-plugin-facebook4/commit/aff9a08a86cc6c6a18019f7adc2896ddf97c11cd

在我package.json我改变了

{
  "variables": {
    "APP_ID": "REPLACE_FACEBOOK_APPID",
    "APP_NAME": "REPLACE_FACEBOOK_APPNAME"
  },
  "locator": "cordova-plugin-facebook4@1.6.3",
  "id": "cordova-plugin-facebook4"
},

{
  "variables": {
    "APP_ID": "REPLACE_FACEBOOK_APPID",
    "APP_NAME": "REPLACE_FACEBOOK_APPNAME"
  },
  "locator": "https://github.com/jeduan/cordova-plugin-facebook4#aff9a08a86cc6c6a18019f7adc2896ddf97c11cd",
  "id": "cordova-plugin-facebook4"
},

然后你必须删除旧插件并安装新插件。我是用bash做的

cd myproject
rimraf platforms/
rimraf plugins/
ionic state restore

cd myproject
cordova plugin rm cordova-plugin-facebook4
ionic state restore

答案 2 :(得分:3)

添加字符串资源(我使用linux ubuntu这是我的离子项目路径)文件:/home/user/js/fb4/platforms/android/app/src/main/res/values/strings.xml

<string name="fb_app_id">59523234234</string>
<string name="fb_app_name">hajmo.ba</string>

我的项目现在有效!

答案 3 :(得分:1)

如果您在本地仓库中有插件,则可以替换“plugin.xml”文件中的以下行:

<framework src="com.facebook.android:facebook-android-sdk:4.+"/>

通过

<framework src="com.facebook.android:facebook-android-sdk:4.8.+"/>

然后从您的项目中删除facebook-4插件,然后再从当地仓库添加它,现在包含更正。

或者您可以遵循@ jakub.g

的建议

答案 4 :(得分:1)

我没有足够的声誉将其添加为评论,因此我将其作为答案发布。我无法使用@suprandr和@jakub.g指定的方法解决这个问题,对我有用的是取代每一次“ com.facebook.android:facebook-android-sdk:4。+ 在我的Cordova项目中“与” com.facebook.android:facebook-android-sdk:4.8.0 “。

注意:这只是一个临时修复