【问题标题】:Appcelerator CLI fails to launch Android App after updating from 8.2.0.GA to 9.0.X.GA SDK从 8.2.0.GA 更新到 9.0.X.GA SDK 后 Appcelerator CLI 无法启动 Android 应用程序
【发布时间】:2020-09-21 14:25:24
【问题描述】:

自 2015 年以来,我有一个应用在生产中,并且我已经使用不同的 Titanium SDK 版本对其进行了多次更新。

现在我需要再次更新它,我想使用最新的 Titanium SDK 9.0.2,但由于某种原因它无法在 Android 上启动,iOS 工作正常。该应用程序可以正确构建,但不会将其安装到设备中,并且在启动时会挂起。它显示的最后一条控制台消息是这样的:

[INFO]  App successfully installed
[INFO]  Starting app: com.xxx.xxx/.xxxActivity (I hided the name)
[ERROR] Application failed to launch

The current timeout is set to 120000 ms
You can increase this timeout by running: titanium.js config android.appStartTimeout <timeout ms>

它说应用程序已成功安装,但没有。我已经增加了超时时间,就像它说的那样将时间加倍,结果是一样的。

如果我使用 8.2.0.GA 运行完全相同的应用程序,它可以正常工作。

我在 MacOS 10.14.6 上使用装有 Android 9 的 Android 设备(小米米 A2 Lite)。这是我的配置:

 ──────────────────┤   Check Environment   ├─────────────────── 

Node.js
  ✓  node               installed (v10.13.0)
  ✓  npm                installed (v6.4.1)

Titanium CLI
  ★  cli                new version v5.2.2 available (currently v5.1.1)

Titanium CLI Dependencies
  ✓  acs                up-to-date (v2.1.0)
  ✓  alloy              up-to-date (v1.13.9)
  ✓  appc-cli-titanium  up-to-date (v4.4.26)
  ✓  appc-inquirer      up-to-date (v0.1.10)
  ✓  appc-logger        up-to-date (v1.1.27)
  ✓  appc-platform-sdk  up-to-date (v3.1.0)
  ✓  appcd              up-to-date (v1.1.3)
  ✓  arrow              up-to-date (v3.2.12)
  ✓  async              up-to-date (v1.5.2)
  ✓  chalk              up-to-date (v1.1.3)
  ✓  char-spinner       up-to-date (v1.0.1)
  ✓  columnify          up-to-date (v1.5.4)
  ✓  commander          up-to-date (v2.9.0)
  ✓  debug              up-to-date (v2.6.9)
  ✓  ejs                up-to-date (v2.6.1)
  ✓  fields             up-to-date (v0.1.24)
  ✓  fs-extra           up-to-date (v0.26.7)
  ✓  inquirer           up-to-date (v0.11.4)
  ✓  ip                 up-to-date (v1.1.5)
  ✓  jwt-simple         up-to-date (v0.3.1)
  ✓  lodash             up-to-date (v3.10.1)
  ✓  node-appc          up-to-date (v0.2.49)
  ✓  node-forge         up-to-date (v0.6.49)
  ✓  node-ios-device    up-to-date (v1.7.1)
  ✓  npm-conf           up-to-date (v1.1.3)
  ✓  pac-proxy-agent    up-to-date (v2.0.2)
  ✓  plural             up-to-date (v0.2.1)
  ✓  progress           up-to-date (v1.1.8)
  ✓  recursive-readdir  up-to-date (v2.2.2)
  ✓  request            up-to-date (v2.88.0)
  ✓  retire             up-to-date (v1.6.3)
  ✓  semver             up-to-date (v5.7.0)
  ✓  tar                up-to-date (v4.4.8)
  ✓  tiapp.xml          up-to-date (v0.2.2)
  ✓  titanium           up-to-date (v5.1.1)
  ✓  version-bump-prompt up-to-date (v3.1.2)
  ✓  which              up-to-date (v1.3.1)
  ✓  wrench             up-to-date (v1.5.9)

Titanium SDK
  ✓  latest sdk         installed (v9.0.2.GA)
  ✓  selected sdk       up-to-date (v9.0.2.GA)

Mac OS X Environment
  ✓  CLI Tools          installed

iOS Environment
  ✓  Xcode              installed (11.3.1)
  ✓  iOS SDK            installed (13.2.2)
  ✓  WWDR cert          installed
  ✓  developer cert     installed (3 found)
  ✓  distribution cert  installed (5 found)
  ✓  dev provisioning   installed (21 found)
  ✓  dist provisioning  installed (14 found)

Android Environment
  ✓  sdk                installed (/Users/luiscript/android-sdk)
  ✓  tools              installed (v25.2.5)
  ✓  platform tools     installed (v29.0.6)
  ✓  build tools        installed (v29.0.3)
  ✓  adb                installed /Users/luiscript/android-sdk/platform-tools/adb
  ✕  android            "android" executable not found; please reinstall Android SDK
  ✓  emulator           installed /Users/luiscript/android-sdk/tools/emulator
  ✓  mksdcard           installed /Users/luiscript/android-sdk/tools/mksdcard
  ✓  zipalign           installed /Users/luiscript/android-sdk/build-tools/29.0.3/zipalign
  ✓  aapt               installed /Users/luiscript/android-sdk/build-tools/29.0.3/aapt
  ✓  aidl               installed /Users/luiscript/android-sdk/build-tools/29.0.3/aidl
  ✓  targets            installed (9 found)
  ✓  avds               installed (8 found)
  ✓  ndk                installed (15.1.4119039)
  ✓  ndk-build          installed (/Users/luiscript/android-ndk-r15b/ndk-build)

Java Development Kit
  ✓  jdk                installed (v1.8.0)
  ✓  java               installed /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java
  ✓  javac              installed /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/javac
  ✓  keytool            installed /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/keytool
  ✓  jarsigner          installed /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/jarsigner

Intel® Hardware Accelerated Execution Manager (HAXM)
  ✓  compatible         
  !  installed          not found; install HAXM to use Android x86 emulator

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 

我尝试了不同版本的节点但没有成功。现在我已经放弃了,我想我会使用 8.2.0.GA。因为是适用于我的支持 iOS 13 和 Android 10 的最新版本。

这很奇怪,因为如果我创建一个全新的应用程序,它可以正常工作并正确安装,而且我注意到新应用程序在 tiapp.xml 文件中具有此属性:

&lt;property name="appc-app-id" type="string"&gt;XXXXXXXXXXXXXXXXXX&lt;/property&gt;

而我现在的应用没有那个标签,不知道是不是跟这个有关。

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 你可以试试 8.3.1.GA,它是 8.x 分支中的最新版本。还可以使用-l trace 编译以查看更多输出。 adb logcat 将是另一个检查选项(将有很多输出,请确保观看启动过程并检查是否有任何错误)。那么,如果您在onOpen 之前运行了任何可能阻止启动的代码,将会很有趣。当您使用appc cli 编译时,将使用appc-app-id。它是在 appc 后端注册的 ID。如果您继续使用ti cli,您可以删除它
  • 8.3.1.GA 按预期工作,我很高兴有比 8.2.0.GA 更新的版本。我还用 9.0.2.GA 做了一个-l trace,它并没有给我任何有用的东西。我相信onOpen 与合金一起使用对吗?我正在使用 Titanium Classic 项目。对于adb logcat,我仍在等待完成,这太疯狂了,无法阅读,但我检查了输出,寻找一些东西,但没有发现任何错误……无论如何,非常感谢你的帮助。
  • 您可以在经典应用中使用addEventListener("open", clb)。但它在 8.x 中也应该很慢。应用程序开始在 9 中发生了变化,尤其是在 Android 上,它最终会更快(和编译!)。检查它实际上在哪里停止的艰难方法:添加大量的 console.log 来查看你要去的地方。或者使用github.com/m1ga/from_zero_to_app/blob/master/… 来单步调试您的代码。有多种方法可以找到罪魁祸首,但没有代码就很复杂:) 也尝试安装 dist 构建!我从 8 到 9 的所有过渡都非常顺利。
  • adb logcat:我一直清理我的控制台,直到启动应用程序之前的最后一刻。然后我会等待几秒钟(这里是什么都没有发生后)并终止该进程。所以你没有太多的输出,如果它在日志中,你就接近一个错误
  • 我不认为 console.log 会有帮助,因为应用程序没有安装在手机上,即使控制台说它已成功安装。我会尝试你建议的一切……顺便说一句,我很久以前就在 github 上关注你,也很高兴在这里见到你。

标签: android node.js titanium appcelerator


【解决方案1】:

我不确定问题出在哪里,但我更新到了 MacOS Catalina 和 Xcode 11.5,现在一切正常,没有任何变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多