【问题标题】:ResourceNotFoundException error when accessing image in Android Titanium module在 Android Titanium 模块中访问图像时出现 ResourceNotFoundException 错误
【发布时间】:2016-04-07 15:09:15
【问题描述】:

我正在为 Titanium 应用程序开发一个 Android 模块,我必须生成一个通知。 Android SDK 强制我进行setSmallIcon() 调用以包含一个 png 资产作为通知的图标。我已将 icon_notification.png 资产放在模块的 /platform/android/res/drawable 文件夹中,并(尝试)在代码调用中得到它

TiRHelper.getResource("drawable.icon_notification")

但是当我构建调用ant的模块时,会出现以下错误:

[javac] Note: [KrollBindingGen] Running Kroll binding generator.
[javac] Note: [KrollBindingGen] No binding data found, creating new data file: org.appcelerator.titanium.bindings/connecthings.json
[javac] Note: [KrollBindingGen] Found binding for proxy Beacon
[javac] Note: [KrollBindingGen] Found binding for module Connect
[javac] Note: [KrollBindingGen] Generating JSON: file:/Users/***/Development/***/modules/android/***/android/build/generated/json/org/appcelerator/titanium/bindings/***.json
[javac] warning: The following options were not recognized by any processor: '[kroll.checkTiContext]'
[javac] /Users/***/Development/***/modules/android/***/android/src/***/***/***/***/ConnectModule.java:76: error: unreported exception ResourceNotFoundException; must be caught or declared to be thrown
[javac]             .setSmallIcon(TiRHelper.getResource("drawable.icon_notification"))
[javac]                                                ^
[javac] Note: /Users/***/Development/***/modules/android/***/android/src/***/***/ti/***/BeaconProxy.java uses or overrides a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] 1 error

似乎引发了ResourceNotFoundException 异常,构建器找不到资产

我是不是把文件放错地方了?

【问题讨论】:

  • 嗨克劳迪奥,sdk 版本?
  • appc CLI 和 Titanium SDK 的最新版本:5.2.2,模块是用 android-23addon 构建的-google_apis-google-23 android SDK 和 android-ndk-r11b Android NDK

标签: titanium appcelerator appcelerator-titanium


【解决方案1】:

平台文件夹也有android文件夹的子文件夹。完整目录是“android/platform/android/res/drawable/”。您还可以检查资源是否在 build 文件夹中创建。

Documentation Link

【讨论】:

【解决方案2】:

发布的错误是在模块的构建步骤中出现的。 在这一步中,我认为资源尚未到位,因此,将 TiRHelper 方法包​​装在 @Saeed Sharman 建议的 wiki 中所写的 try...catch 语句中可以解决问题。

所以,工作版本很简单:

try {
  TiRHelper.getResource("drawable.icon_notification");
catch (ResourceNotFoundException e) {
  ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 2017-10-16
    相关资源
    最近更新 更多