Tellimi Tellimi - 22 days ago 5
Android Question

Execution failed for task ':processDebugResources' on Ionic

I have an issue with Ionic command : Ionic build android

Here the tutorial Salesforce i'm following to create an app connected to the Salesforce API. (contact, etc.).

Now, when i mudt build android, I have this issue :

:processDebugResources
/home/r.**/Workspace/IonicApp/platforms/android/build/intermediates/manifests/full/debug/AndroidManifest.xml:32: error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/sf__icon').

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:

/usr/local/android-sdk-linux/build-tools/25.0.0/aapt package -f --no-crunch -I /usr/local/android-sdk-linux/platforms/android-23/android.jar -M /home/r.**/Workspace/IonicApp/platforms/android/build/intermediates/manifests/full/debug/AndroidManifest.xml -S /home/r.**/Workspace/IonicApp/platforms/android/build/intermediates/res/debug -A /home/r.**/Workspace/IonicApp/platforms/android/build/intermediates/assets/debug -m -J /home/r.**/Workspace/IonicApp/platforms/android/build/generated/source/r/debug -F /home/r.**/Workspace/IonicApp/platforms/android/build/intermediates/res/resources-debug.ap_ --debug-mode --custom-package com.ionicframework.ionicapp508454 -0 apk --output-text-symbols /home/r.**/Workspace/IonicApp/platforms/android/build/intermediates/symbols/debug

Error Code:

1

Output:

/home/r.**/Workspace/IonicApp/platforms/android/build/intermediates/manifests/full/debug/AndroidManifest.xml:32: error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/sf__icon').

* 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.305 secs

Error: /home/r.**/Workspace/IonicApp/platforms/android/gradlew: Command failed with exit code 1


I restart the tutorial 2 times and i still have this error. Maybe because I do an Android App and not an Ios like the tutorial.

What is this file missing and where is it supposed to be?

If you need the XML:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ionicframework.ionicapp508454"
android:hardwareAccelerated="true"
android:versionCode="18"
android:versionName="0.0.1" >

<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="23" />

<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.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<permission
android:name="com.ionicframework.ionicapp508454.permission.C2D_MESSAGE"
android:protectionLevel="signature" />

<uses-permission android:name="com.ionicframework.ionicapp508454.permission.C2D_MESSAGE" />

<application
android:name="com.salesforce.androidsdk.phonegap.app.HybridApp"
android:hardwareAccelerated="true"
android:icon="@drawable/sf__icon"
android:label="@string/app_name"
android:manageSpaceActivity="com.salesforce.androidsdk.ui.ManageSpaceActivity" >
<activity
android:name="com.adobe.phonegap.push.PushHandlerActivity"
android:exported="true" />

<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />

<category android:name="com.ionicframework.ionicapp508454" />
</intent-filter>
</receiver>

<service
android:name="com.adobe.phonegap.push.GCMIntentService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name="com.adobe.phonegap.push.PushInstanceIDListenerService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<service
android:name="com.adobe.phonegap.push.RegistrationIntentService"
android:exported="false" />

<activity
android:name="com.salesforce.androidsdk.phonegap.ui.SalesforceDroidGapActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.google.android.gms.common.api.GoogleApiActivity"
android:exported="false"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>

</manifest>


Some info:


  • I create an Android App.

  • Cordova-android is version 5.0.0 because 6.0.0 do a mismatch issue with the api salesforce.

  • I'm a beginner with Ionic/Cordova and mobile dev. Maybe the solution is oubvious.


Answer

The error output suggests that the build just fails due to a missing icon resource: No resource found that matches the given name (at 'icon' with value '@drawable/sf__icon').

The SalesforceSDK includes those files though, however they do not seem to be added to the Android project correctly:

https://github.com/forcedotcom/SalesforceMobileSDK-CordovaPlugin/tree/master/src/android/libs/SalesforceSDK/res

Copy-pasting might resolve the problem though, still wondering why the plugin does not add the drawables as expected in the res/drawable folder!