【问题标题】:Android Titanium Appcelerator - Path must be a string. Received nullAndroid Titanium Appcelerator - 路径必须是字符串。收到空
【发布时间】:2017-08-02 22:50:22
【问题描述】:

我正在使用 Titanium & Alloy 进行一个项目,我终于能够运行 iOS 版本,但是当我运行 appc ti build -p android 命令时,我遇到了 Android 错误。

Building Java source files 步骤之前似乎一切正常

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/javac  
"-J-Xmx1024M" "-encoding" "utf8" "-bootclasspath" "/Users/fharper/Library/Android/sdk/platforms/android-
23/android.jar:/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/kroll-v8.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-analytics.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/aps-analytics.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-android.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/jaxen-1.1.1.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/ti-commons-codec-1.3.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/kroll-common.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/titanium.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/android-support-multidex.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-filesystem.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-app.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-ui.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/nineoldandroids-appc-2.4.0.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-media.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-appcompat.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/android-support-v4.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/android-support-v7-appcompat.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-cardview.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/cardview-v7-23.0.1.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-locale.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-network.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-xml.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-platform.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-gesture.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-database.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/modules/titanium-geolocation.jar:
/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/ti.compression/3.0.0/compression.jar:
/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/analytics.google/3.2.0/analytics.google.jar:
/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/analytics.google/3.2.0/lib/google-play-services-analytics.jar:
/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/analytics.google/3.2.0/lib/google-play-services-base.jar:
/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/analytics.google/3.2.0/lib/google-play-services-basement.jar:
/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/analytics.google/3.2.0/lib/play-services-analytics-impl.jar:
/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/com.ideeclic.insitu.insituwebserver/2.0.0/insituwebserver.jar:
/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/ti.map/3.0.1/map.jar:/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/ti.map/3.0.1/lib/google-play-services-map.jar:
/Users/fharper/Library/Application Support/Titanium/modules/android/com.alcoapps.actionbarextras/1.7.3/actionbarextras.jar:
/Users/fharper/Documents/Code/TheProject/TheProject/modules/android/com.tripvi.drawerlayout/2.0.0/drawerlayout.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/kroll-apt.jar:
/Users/fharper/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/android/lib/titanium-verify.jar:Manifest.class:R.class:AssetCryptImpl.class:Insitu2TheProjectActivity.class:Insitu2TheProjectAppInfo.class:Insitu2TheProjectApplication.class" "-d" 
"/Users/fharper/Documents/Code/TheProject/TheProject/build/android/bin/classes" "-proc:none" "-target" "1.6" "-source" "1.6" "@/Users/fharper/Documents/Code/TheProject/TheProject/build/android/java-sources.txt"

我得到以下错误的地方

An uncaught exception was thrown!
Path must be a string. Received null
Path must be a string. Received null

我从未使用过 Titanium (6.0.1.GA - CLI 5.0.14),无法访问以前的开发人员,并且即使我知道 JavaScript,也没有使用太多 Node (6.11.2),所以我'米卡住了。我尝试了很多方法,例如更改 Titanium SDK、Java JDK (1.8.0_121)、Android SDK (6.0 API 23 rev 3),但没有任何效果,iOS 现在正在运行。我什至不确定这个错误发生在哪里。即使我使用 AppceleratorStudio 尝试运行应用程序,我也会遇到问题。

有什么想法吗?我在这方面花了太多时间,真的需要继续前进……非常感谢!

更新

这是我运行appc run -p android --build-only -l trace 命令时的完整日志(太大而无法直接粘贴到 SO 中):https://dl.dropboxusercontent.com/u/13087140/StackOverflow/build_android.log

【问题讨论】:

  • 您可以尝试使用命令'appc run -p android --build-only -l trace'。这将在控制台中生成一个日志,并在问题发生时为您提供信息。如果你能分享它,它会给我一些线索去寻找。
  • 谢谢,我在最初的问题中添加了日志文件。我再仔细看看,但一开始还是看不出我该去哪里找……
  • 这里太大了不能粘贴(StackOverflow 的限制),但是 .log 文件的链接是有问题的。这里:dl.dropboxusercontent.com/u/13087140/StackOverflow/…
  • @YvetteColomb:这是来自命令行的日志,具有跟踪模式。这就是为什么我无法找到问题所在,因为您可以在日志中找到的唯一错误是:引发了未捕获的异常!路径必须是字符串。接收到的空路径必须是字符串。收到空
  • 即使我尝试从 AppceleratorStudio 中构建它(我猜它使用 CLI 编译),我也得到了同样的错误(这里是最后四行,因为注释的最大字符太短了- 与我在 CLI 日志文件中的相同):2017-08-05T12:39:33.998Z |错误 |抛出了一个未捕获的异常!路径必须是字符串。收到 null 2017-08-05T12:39:33.998Z |错误 |路径必须是字符串。收到空

标签: android node.js titanium appcelerator


【解决方案1】:

此问题的解决方案是将 Android SDK 工具从 23.0.2 升级到 26.0.1,即使 Appcelerator Titanium 目前尚未测试和支持。

【讨论】:

    【解决方案2】:

    这是 appcelerator 的一个已知问题,基本上,它尚未针对某些配置进行修复 - 开发人员一直难以重现该错误,因此钛和节点的确切版本选择似乎很重要。

    "Path must be a string. Received undefined" error is thrown if you build to Android using Node 6.X.X strictly with Appc CLI

    解决方案:不会修复

    一个用户的修复。

    开发者已关闭问题,问题是否已解决存在冲突。

    将关闭票证,因为无法修复。确认我不再收到此错误
    Appc CLI Core 5.4.0-36 与 Ti SDK 6.0.0.v20160728020336。

    我仍然无法使用当前的 GA 堆栈重现此问题:
    Appc CLI NPM:4.2.8
    Appc CLI 核心:6.1.0
    SDK:6.0.1.GA
    节点:v6.9.2
    操作系统:Mac OS X (10.12.2)
    如果可能,在运行移动项目时,包括调试和跟踪日志:DEBUG=* appc run -l trace。

    现在你正在使用:

    钛 (6.0.1.GA - CLI 5.0.14)
    节点(6.11.2)

    尝试使用适用于钛的旧 sdk 和更早的节点版本。我认为这不是 Android sdk 的问题。

    一个用户通过降级节点解决了它

    我使用 node v4x 解决了这个问题。它不适用于我看到错误时正在使用的 v6.x。

    来自github:

    appcelerator/titanium Path must be a string. Received undefined

    来自开发者:

    所有路径的明显检查:

    我要做的第一件事是查看您的 Appc CLI 和 Titanium CLI 配置文件,看看是否有任何设置看起来像未定义、空或空的路径并修复它们。您可以在 ~/.appcelerator/appc-cli.json 和 ~/.titanium/config.json 找到它们。

    和降级版本:

    之所以发生这种情况,是因为 Node.js 中的一些更改会影响 5.5.1.GA。如果您的应用需要继续使用 SDK 5.5.1.GA,请尝试将您的 Node 版本降级到 4.X 版本,否则升级到 SDK 6.0.1.GA 应该可以解决此问题。

    另一个总是值得一提的问题 - 是卸载和安装新的 sdk,以防您继承的项目导入的当前 sdk 有一些更改或缺陷。

    【讨论】:

    • 谢谢伊薇特!问题最终是我需要升级到最新版本 26.0.1 的 Android SDK 工具,即使 Appcelerator 不支持或测试。把我带到那里的是你的答案。我尝试降级到 Node v4.x,但在构建 Java 源文件时,在同一步骤中出现了不同的错误:[ERROR] Failed to run dexer: [ERROR] [ERROR] Error: Unable to access jarfile null3 有了该错误,我发现问题可能是 Android SDK 工具问题,升级后有效。我还能够回到 Node v6.x,现在一切都在编译。
    • 我会奖励你赏金,但无论出于何种原因,我只能在 9 小时内完成......再次感谢!
    猜你喜欢
    • 2017-04-23
    • 2016-10-13
    • 2016-10-14
    • 2017-05-18
    • 2019-06-04
    • 1970-01-01
    • 2017-04-23
    • 2016-04-29
    • 1970-01-01
    相关资源
    最近更新 更多