问题
I don't know what else to do as I tried everything I could find so far.
Situation: I am trying to use Titanium via CLI on my Windows 7 Laptop.
Installing Node.js, Titanium, Titanium sdk, Android sdk all works fine.
PS C:\Windows\system32> node -v
v0.12.9
PS C:\Windows\system32> ti -v
5.0.6
Installed SDKs:
4.0.0.GA [selected]
Trying ti info as well as building something produces the following Error:
PS C:\Windows\system32> ti info
Titanium Command-Line Interface, CLI version 5.0.6, Titanium SDK version 4.0.0.GA
Copyright (c) 2012-2015, Appcelerator, Inc. All Rights Reserved.
Please report bugs to http://jira.appcelerator.org/
/Error: EPERM, operation not permitted 'C:\Program Files\Gemeinsame Dateien'
at Error (native)
at Object.fs.readdirSync (fs.js:761:18)
at scan (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\titanium-sdk\lib\emulators\genymotion.js:136:
25)
at scan (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\titanium-sdk\lib\emulators\genymotion.js:148:
26)
at C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\titanium-sdk\lib\emulators\genymotion.js:154:10
at C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\titanium-sdk\lib\emulators\genymotion.js:111:8
at Immediate.q.process (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\async\lib\async.js:731:21)
at processImmediate [as _immediateCallback] (timers.js:367:17)
---------------------------------------------
at Object.async.setImmediate (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\async\lib\async.js:96:15
)
at C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\async\lib\async.js:696:21
at Array.forEach (native)
at _each (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\async\lib\async.js:32:24)
at _insert (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\async\lib\async.js:681:11)
at Object.q.push (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\async\lib\async.js:708:15)
at C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\titanium-sdk\lib\emulators\genymotion.js:127:12
at Object.queue.drain (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\node-appc\lib\subprocess.js:108
:3)
at next (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\node-appc\node_modules\async\lib\async.js:804
:31)
---------------------------------------------
at Object.async.setImmediate (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\node-appc\node_modules\a
sync\lib\async.js:110:15)
at C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\node-appc\node_modules\async\lib\async.js:768:21
at Array.forEach (native)
at _each (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\node-appc\node_modules\async\lib\async.js:46
:24)
at _insert (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\node-appc\node_modules\async\lib\async.js:
753:11)
at Object.q.push (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\node-appc\node_modules\async\lib\asy
nc.js:782:15)
at Object.findExecutable (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\node-appc\lib\subprocess.js:
113:8)
at Object.async.parallel.virtualbox (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\titanium-sdk\lib\
emulators\genymotion.js:97:20)
at C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\node_modules\async\lib\async.js:524:25
I have to say that i was already trying different versions of Node (4.x, 5.x).
I read about the Genymotion issue. I have Genymotion installed, never uninstalled it and i did try to delete the genymotion.js from sdk directory.
Deleting this produces:
PS C:\Windows\system32> ti info
Titanium Command-Line Interface, CLI version 5.0.6, Titanium SDK version 4.0.0.GA
Copyright (c) 2012-2015, Appcelerator, Inc. All Rights Reserved.
Please report bugs to http://jira.appcelerator.org/
|[ERROR] Failed to run command "info"
[ERROR] Error: Cannot find module 'titanium-sdk/lib/emulators/genymotion'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\cli\lib\info.js:12:15)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
---------------------------------------------
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:275:35
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:44:16
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:694:17
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:173:37
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:52:16
at Object.done (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:248:21)
at Object.<anonymous> (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:44
:16)
at CLI._fireHookCallback (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\hook.js:269:12)
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\hook.js:248:10
---------------------------------------------
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:275:35
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:44:16
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:694:17
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:173:37
at CLI.detectMissingArguments (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\cli.js:695:13)
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:689:13
at iterate (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:265:13)
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:277:29
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:44:16
---------------------------------------------
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:275:35
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:44:16
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:694:17
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:173:37
at CLI.<anonymous> (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\cli.js:523:9)
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:689:13
at iterate (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:265:13)
at async.forEachOfSeries.async.eachOfSeries (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules
\async\lib\async.js:284:9)
at _parallel (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:688:9)
---------------------------------------------
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:275:35
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:44:16
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:694:17
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:173:37
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\hook.js:243:8
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:689:13
at iterate (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:265:13)
at async.forEachOfSeries.async.eachOfSeries (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules
\async\lib\async.js:284:9)
at _parallel (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:688:9)
---------------------------------------------
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:275:35
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:44:16
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:694:17
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:173:37
at CLI.processCompletion (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\cli.js:370:2)
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:689:13
at iterate (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:265:13)
at process._tickCallback (node.js:355:11)
---------------------------------------------
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:275:35
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:44:16
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:694:17
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:173:37
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:52:16
at Object.done (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:248:21)
at Object.<anonymous> (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:44
:16)
at CLI._fireHookCallback (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\hook.js:269:12)
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\hook.js:248:10
---------------------------------------------
at Object.setImmediate (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:2
00:9)
at _insert (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:861:19)
at Object.q.push (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\async\lib\async.js:888:17)
at Object.findExecutable (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\node_modules\node-appc\lib\subp
rocess.js:113:8)
at resolveNode (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\titanium.js:97:34)
at C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\titanium.js:74:5
at Object.<anonymous> (C:\Users\cluecke\AppData\Roaming\npm\node_modules\titanium\lib\titanium.js:80:2)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
Also: All of this is produced with admin privileges, even though my user has the same permissions on that machine. Both admin and my user have all permissions on "common files"
last information at this point
PS C:\Windows\system32> ti config
android.ndkPath = "C:\\Users\\cluecke\\Ti_Android\\android-ndk-r10e"
android.sdkPath = "C:\\Users\\cluecke\\AppData\\Local\\Android\\sdk1"
app.workspace = "C:\\Users\\cluecke\\Ti_Workspace"
cli.colors = true
cli.completion = false
cli.failOnWrongSDK = false
cli.httpProxyServer = ""
cli.ignoreDirs = "^(\\.svn|_svn|\\.git|\\.hg|\\.?[Cc][Vv][Ss]|\\.bzr|\\$RECYCLE\\.BIN)$"
cli.ignoreFiles = "^(\\.gitignore|\\.npmignore|\\.cvsignore|\\.DS_Store|\\._.*|[Tt]humbs.db|\\.vspscc|\\.vssscc|\
\.sublime-project|\\.sublime-workspace|\\.project|\\.tmproj)$"
cli.logLevel = "trace"
cli.progressBars = true
cli.prompt = true
cli.rejectUnauthorized = "yes"
cli.width = 100
paths.commands = []
paths.hooks = []
paths.modules = []
paths.plugins = []
paths.sdks = []
paths.templates = []
sdk.selected = "4.0.0.GA"
user.email = "***"
user.locale = "de"
user.name = "***"
I hope you can help!
回答1:
Titanium's Genymotion detection code does a naive scan of the "Program Files" directory looking for the VirtualBox installation. Some of the directories in the "Program Files" directory require elevated privileges. Doing a simple fs.readdirSync() in Node.js throws an exception.
The removing the Genymotion file doesn't work anymore. It's directly referenced by the "ti info" code.
So, to workaround this, you simply need to set the "genymotion.executables.vboxmanage" setting to the path of VirtualBox's "VBoxManage.exe" executable:
ti config genymotion.executables.vboxmanage "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
来源:https://stackoverflow.com/questions/35150675/titanium-cli-on-win-7-eperm-operation-not-permitted-c-program-files-gemein