Please Help, ✗ Unable to save ionic data:

aldo@dc:~/todo$ ionic platform add android
 ✗ Unable to save ionic data: /home/aldo/.ionic/ionic.config Error: EACCES, permission denied '/home/aldo/.ionic/ionic.config'
Error: Attempt to unlock cordova-android@3.6.4, which hasn't been locked
    at unlock (/usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/lib/utils/locker.js:44:11)
    at cb (/usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/lib/cache/add-named.js:32:5)
    at /usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/lib/cache/add-named.js:41:20
    at /usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/lib/utils/locker.js:22:20
    at /usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/inflight/inflight.js:22:7
    at Array.forEach (native)
    at res (/usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/inflight/inflight.js:21:9)
    at f (/usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/once/once.js:16:25)
    at afterMkdir (/usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/lib/cache/get-stat.js:53:14)
    at /usr/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/mkdirp/index.js:46:53
    indent preformatted text by 4 spaces

Try with a sudo:

sudo ionic platform add android
1 Like

Hmm, it sounds like a permissions issue.

You may want to try this

sudo chown -R $(whoami) ~/.ionic
# or even this
sudo chown -R $(whoami) ~/.npm

Not work for me. If I use sudo ionic platform add it say

    /Users/nemo1112/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/node_modules/q/q.js:126
                    throw e;
                          ^
Error: ANDROID_HOME is not set and "android" command not in your PATH. You must fulfill at least one of these conditions.
    at /Users/nemo1112/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/lib/check_reqs.js:159:19
    at _fulfilled (/Users/nemo1112/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/node_modules/q/q.js:798:54)
    at self.promiseDispatch.done (/Users/nemo1112/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/node_modules/q/q.js:827:30)
    at Promise.promise.promiseDispatch (/Users/nemo1112/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/node_modules/q/q.js:760:13)
    at /Users/nemo1112/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/node_modules/q/q.js:821:14
    at flush (/Users/nemo1112/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:442:13)
    at Function.Module.runMain (module.js:499:11)
    at startup (node.js:119:16)
    at node.js:929:3
Error: /Users/nemo1112/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/create: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:766:16)
    at Process.ChildProcess._handle.onexit (child_process.js:833:5)

ah alright, so you need to add the android sdk to you path.

http://cordova.apache.org/docs/en/4.0.0/guide_platforms_android_index.md.html#Android%20Platform%20Guide