Appcelerator Studio无法启动我的Android应用程序。

4
我是新来的Appcelerator用户,我最近在我的Windows 7 64位电脑上安装了Appcelerator Studio。我有Android SDK版本5.1.1和5.1.0。我还使用“appc ti config”命令将Android版本从22.0.0(默认)更改为21.0.0,因为默认的Android版本会显示警告信息。
现在,我正在尝试在我的Android手机上启动一个测试应用程序。Appcelerator Studio能够发现我的设备,但当我运行该应用程序时,我遇到了以下错误:
[ERROR] :  Missing required Android SDK tools: zipalign, aapt, aidl, dx
[ERROR] :  
[ERROR] :  The Android SDK located at C:\android-sdk-win has incomplete or out-of-date packages.
[ERROR] :  
[ERROR] :  Current installed Android SDK tools:
[ERROR] :    Android SDK Tools:          24.3.3
[ERROR] :    Android SDK Platform Tools: 22.0.0
[ERROR] :    Android SDK Build Tools:    21.0.0
[ERROR] :  
[ERROR] :  Make sure you have the latest Android SDK Tools, Platform Tools, and Build Tools installed.
[ERROR] :  
[ERROR] :  You can also specify the exact location of these required tools by running:
[ERROR] :    appc ti config android.executables.zipalign "C:\path\to\android-sdk\zipalign.exe"
[ERROR] :    appc ti config android.executables.aapt "C:\path\to\android-sdk\aapt.exe"
[ERROR] :    appc ti config android.executables.aidl "C:\path\to\android-sdk\aidl.exe"
[ERROR] :    appc ti config android.executables.dx "C:\path\to\android-sdk\dx.bat"

编辑

我通过运行命令'appc ti config android.executables.aapt "C:\path\to\android-sdk\aapt.exe"'成功解决了上述错误。

但应用程序启动仍然不成功。它停留在“启动Appcelerator...:(57%)”处。控制台输出如下:

    Appcelerator Command-Line Interface, version 4.0.2
Copyright (c) 2014-2015, Appcelerator, Inc.  All Rights Reserved.
TRACE  | __command__ search paths:
[
  "C:\\Users\\username\\.appcelerator\\install\\4.0.2\\package",
  "C:\\Users\\username\\.appcelerator\\install\\4.0.2\\package\\node_modules",
  "C:\\Windows\\system32\\node_modules",
  "C:\\Windows\\node_modules",
  "C:\\node_modules",
  "C:\\Users\\username\\.appcelerator\\.npm\\lib\\node_modules"
]
DEBUG  | [PLUGIN-LOAD] 1ms C:\Users\username\.appcelerator\install\4.0.2\package\appc.js
DEBUG  | [PLUGIN-LOAD] 2058ms C:\Users\username\.appcelerator\install\4.0.2\package\node_modules\appc-cli-titanium\appc.js
DEBUG  | [PLUGIN-LOAD] 2ms C:\Users\username\.appcelerator\install\4.0.2\package\node_modules\arrow\appc.js
log level set to "trace"
executing command "run"
set environment to {"registry":"https://software.appcelerator.com","security":"https://security.appcelerator.com","baseurl":"https://platform.appcelerator.com"}
checking credentials for existing session
Attempting to load session info from config file
check if session is invalidated
session expiry 1436363230210 false
ACS config file: C:\Users\username\.acs
found ACS login { mid: '78-84-3C-EB-1E-EE',
  username: '<my email here>',
  cookie: [ 'connect.sid=s%3ANzD7%2F4ddUCpGeXpMINQQqfbr.yg%2BuCo3wTu7J%2Fy%2Bcf1VFefQVIjyOKnB9AxlzX5rd8WY; path=/; expires=Wed, 08 Jul 2015 13:46:11 GMT; httpOnly' ],
  publishHost: 'https://admin.cloudapp-enterprise.appcelerator.com',
  publishPort: 443,
  defaultEP: 
   { publishHost: 'https://admin.cloudapp-enterprise.appcelerator.com',
     publishPort: 443 } } , checking nodeACSEndpoint= https://admin.cloudapp-enterprise.appcelerator.com
ACS cookie expiry [ 1436363171000 ]
session already loaded in opts.session
getCredentials() session:
{
  "ipaddress": "<HIDDEN>",
  "username": "<my email here>",
  "password": "<OMITTED>",
  "session": "<OMITTED>",
  "nonce": "<OMITTED>",
  "environment": {
    "name": "production",
    "isProduction": true,
    "acsBaseUrl": "https://api.cloud.appcelerator.com",
    "acsAuthBaseUrl": "https://secure-identity.cloud.appcelerator.com",
    "nodeACSEndpoint": "https://admin.cloudapp-enterprise.appcelerator.com"
  },
  "token": "<OMITTED>",
  "fingerprint": "a70646c9735845c52dd791bf727f8db1a0eca0a9",
  "fingerprint_description": "Windows Machine ID: <HIDDEN>",
  "org_id": <HIDDEN>,
  "expiry": 1436363230210
}
loading plugins for command "run"
run search paths:
[
  "C:\\Users\\username\\.appcelerator\\install\\4.0.2\\package",
  "C:\\Users\\username\\.appcelerator\\install\\4.0.2\\package\\node_modules",
  "C:\\Windows\\system32\\node_modules",
  "C:\\Windows\\node_modules",
  "C:\\node_modules",
  "C:\\Users\\username\\.appcelerator\\.npm\\lib\\node_modules"
]
[PLUGIN-LOAD] 0ms C:\Users\username\.appcelerator\install\4.0.2\package\appc.js
[PLUGIN-LOAD] 992ms C:\Users\username\.appcelerator\install\4.0.2\package\node_modules\appc-cli-titanium\appc.js
run plugin: C:\Users\username\.appcelerator\install\4.0.2\package\node_modules\appc-cli-titanium
[PLUGIN-LOAD] 4ms C:\Users\username\.appcelerator\install\4.0.2\package\node_modules\arrow\appc.js
run plugin: C:\Users\username\.appcelerator\install\4.0.2\package\node_modules\arrow
plugin "arrow" failed its "when" function check, skipping...
loading plugin "titanium" for command "run" CLI options via function
loading plugin "titanium" for command "run" CLI options via array
Duplicate option "colors" for command "run", removing...
executing command "run" with the following plugins:
["titanium"]
TRACE  | Attempting to load session info from config file
TRACE  | check if session is invalidated
TRACE  | session expiry 1436363230210 false
TRACE  | session already loaded in opts.session
DEBUG  | Titanium Downloads Last Checked: 1436257959200
TRACE  | "C:\Program Files\nodejs\node.exe" "C:\Users\username\.appcelerator\install\4.0.2\package\node_modules\appc-cli-titanium\node_modules\titanium\bin\titanium" config -o json-object
TRACE  | "C:\Program Files\nodejs\node.exe" "C:\Users\username\.appcelerator\install\4.0.2\package\node_modules\appc-cli-titanium\node_modules\titanium\bin\titanium" sdk -o json
TRACE  | checking for titanium, result:
 { activeSDK: '4.0.0.GA',
  defaultInstallLocation: 'C:\\ProgramData\\Titanium',
  installLocations: 
   [ 'C:\\ProgramData\\Titanium',
     'C:\\Users\\username\\AppData\\Roaming\\Titanium',
     'C:\\ProgramData\\Application Data\\Titanium' ],
  installed: { '4.0.0.GA': 'C:\\ProgramData\\Titanium\\mobilesdk\\win32\\4.0.0.GA' } }
TRACE  | C:\Program Files\nodejs\node.exe [ 'C:\\Users\\username\\.appcelerator\\install\\4.0.2\\package\\node_modules\\appc-cli-titanium\\node_modules\\titanium\\bin\\titanium',
  'build',
  '--platform',
  'android',
  '--log-level',
  'trace',
  '--sdk',
  '4.0.0.GA',
  '--project-dir',
  'C:\\work\\Appcelerator\\Favebooks',
  '--target',
  'device',
  '--android-sdk',
  'C:\\android-sdk-win',
  '--device-id',
  'TA09407S62',
  '--liveview',
  '--deploy-type',
  'development',
  '--no-colors',
  '--no-progress-bars',
  '--no-prompt',
  '--prompt-type',
  'socket-bundle',
  '--prompt-port',
  '49577',
  '--username',
  '<my email here>',
  '--password',
  '[HIDDEN]',
  '--plugin-paths',
  'C:\\Users\\username\\.appcelerator\\install\\4.0.2\\package\\node_modules',
  '--config-file',
  'C:\\Users\\username\\AppData\\Local\\Temp\\build-1436281919408.json',
  '--no-banner' ]

Android SDK Manager输出

更新2

我认为我在这方面又进了一步-

  • 我重新安装了Android SDK几次。
  • 编辑了我的tiapp.xml并添加了<uses-sdk minSdkVersion="10" targetSdkVersion="21"/>
  • 尝试使用ti build命令生成apk。

当前状态是,使用Appcelerator Studio启动应用程序仍然失败。当我尝试使用Titanium CLI即appc ti build -b命令构建apk文件时,我会收到以下错误:

[ERROR] Failed to run dexer:
[ERROR]
[ERROR] :
Error: Unable to access jarfile null

看起来在“运行dexer”命令中,“-jar”后面有一个空参数(“”),导致出现问题。
C:\Progra~2\Java\jdk1.7.0_06\bin\java.exe "-Xmx1024M" "-XX:-UseGCOverheadLimit" "-Djava.ext.dirs=C:\android-sdk-win\platform-tools" "-jar" "" "--dex" "--output=C:\work\Appcelerator\Favebooks\build\android\bin\classes.dex" "C:\work\Appcelerator\Favebooks\build\android\bin\classes" "C:\ProgramData\Titanium\mobilesdk\win32\4.0.0.GA\android\lib\titanium-verify.jar" ..long list of jar files..

简而言之,我将为上述问题创建一个单独的SO问题。
“appc ti setup check”输出:
    ──────────────────┤ Check Environment ├───────────────────

Node.js
  *  node               new version v0.12.6 available! (currently v0.12.2)
  *  npm                new version v3.1.0 available! (currently v2.7.4)

Titanium CLI
  √  cli                up-to-date (v4.0.1)

Titanium CLI Dependencies
  √  async              up-to-date (v0.2.10)
  √  colors             up-to-date (v0.6.2)
  √  fields             up-to-date (v0.1.24)
  √  humanize           up-to-date (v0.0.9)
  √  jade               up-to-date (v0.35.0)
  √  longjohn           up-to-date (v0.2.4)
  √  moment             up-to-date (v2.4.0)
  x  node-appc          missing
  √  optimist           up-to-date (v0.6.1)
  √  request            up-to-date (v2.27.0)
  √  semver             up-to-date (v2.2.1)
  √  sprintf            up-to-date (v0.1.5)
  √  temp               up-to-date (v0.6.0)
  √  winston            up-to-date (v0.6.2)
  x  wrench             missing

Titanium SDK
  √  latest sdk         installed (v4.0.0.GA)
  x  selected sdk       selected Titanium SDK "vundefined" is not installed

Android Environment
  √  sdk                installed (C:\android-sdk-win)
  !  tools              untested version 24.3.3; may or may not work
  √  platform tools     installed (v22.0.0)
  x  build tools        unsupported version 21.0.0
  √  adb                installed C:\android-sdk-win\platform-tools\adb.exe
  √  android            installed C:\android-sdk-win\tools\android.bat
  √  emulator           installed C:\android-sdk-win\tools\emulator.exe
  √  mksdcard           installed C:\android-sdk-win\tools\mksdcard.exe
  √  zipalign           installed C:\android-sdk-win\build-tools\21.1.1\zipalign.exe
  √  aapt               installed C:\android-sdk-win\build-tools\21.1.1\aapt.exe
  √  aidl               installed C:\android-sdk-win\build-tools\21.1.1\aidl.exe
  √  targets            installed (3 found)
  √  avds               installed (6 found)
  √  ndk                installed (undefined)
  √  ndk-build          installed (undefined)

Java Development Kit
  √  jdk                installed (v1.7.0)
  √  java               installed C:\Progra~2\Java\jdk1.7.0_06\bin\java.exe
  √  javac              installed C:\Progra~2\Java\jdk1.7.0_06\bin\javac.exe
  √  keytool            installed C:\Progra~2\Java\jdk1.7.0_06\bin\keytool.exe
  √  jarsigner          installed C:\Progra~2\Java\jdk1.7.0_06\bin\jarsigner.exe

Intelr Hardware Accelerated Execution Manager (HAXM)
  √  compatible
  √  installed

Network
  √  online
  -  no proxy server configured
  √  Network connection test
  √  Java-based connection test

Directory Permissions
  √  home directory
  √  titanium config directory
  √  titanium sdk install directory
  √  temp directory

1
嗯,是的...那个jar参数的值应该类似于“C:\android-sdk-win\build-tools\21.1.2\lib\dx.jar”。这里肯定有什么问题。"appc ti setup check" 给了你什么? - Fokke Zandbergen
dx.bat 中的注释“在找到 dx.bat 的目录中定位 dx.jar 并启动它。”表明 dx.jar 应该与 dx.bat 存在于同一目录下,但实际上它存在于 lib 目录下(C:\android-sdk-win\build-tools\21.1.1\lib)。 - Tarun Gupta
你成功修复了node-appc缺失的问题吗?我也遇到了同样的问题,但是npm install无法解决它。(顺便说一下,我用的是Mac) - Joris van Liempd iDeveloper
你已经花了一整天的时间来尝试解决这个问题,我想知道你是否成功了。我看到以下错误信息: [ERROR] 应用程序安装器异常进程终止。进程退出值为1 [ERROR] : dexer 运行失败: [ERROR] : 错误:无法访问 jar 文件 null | TRACE | titanium 退出,退出代码为1 | ERROR | 错误:ti run 以错误代码1退出 - Yozef
我花了大约两天的时间,但无法解决这些错误。最终,在我的Mac OS上重新安装所有内容对我来说很有效。 - Tarun Gupta
3个回答

4

这周我遇到了同样的问题,发现问题出在Titanium CLI指向了一个未安装在我的电脑上的"build-tools"版本。

我通过以下命令进行了验证:

appc ti setup check

它的返回结果和你的一样:

 x  build tools        unsupported version 21.0.0

所以,为了正确配置构建工具的版本,我运行了以下命令:
titanium config android.buildTools.selectVersion "<YOUR VERSION>"
titanium config android.buildTools.selectedVersion "<YOUR VERSION>"

接着,重新启动命令提示符并再次运行构建命令,问题应该就解决了。 如果即使这样问题仍然存在,而且构建工具仍然是“不支持的”,请尝试通过SDK管理器下载一个新版本,并使用上述相同的命令进行更改。


1

你的 Android SDK 一定有问题。看起来你通过设置每个所需工具的路径解决了其中一些问题,但仍会在 Titanium 的其他地方出现错误。 C:\android-sdk-win 的内容是什么?你将 android.executables.aapt 和其他路径设置为了什么?


感谢您的回复,C:\android-sdk-win目录下包含以下文件夹:add-ons、build-tools、extras、platform-tools、platforms、samples、system-images、temp和tools。android.executables.aapt路径为C:\android-sdk-win\build-tools\21.1.1\aapt.exe。 - Tarun Gupta

1

我注意到使用 Titanium命令行界面 可以提供更好的错误日志。

我遇到了一个问题,SDK管理器无法再找到新的Android SDK和构建工具,因为我已经安装了一段时间的Android Studio,然后将其删除了。这破坏了“SDK管理器”。解决方法是重新安装Android Studio来管理构建工具和SDK。

此外,Gradle不喜欢特定的Java SDK,而Titanium需要另一个版本,所以我最终选择了:Oracles Java JDK 14.0.2 64位 (在Windows上添加JAVA_HOME=C:\Program Files\Java\jdk-14.0.2)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接