Pebble 应用无法识别资源图片

Pebble app not recognizing Resource Images

我已经通过资源旁边的 'add new' 按钮添加了资源,然后在我正在执行的代码中添加了资源

image_logo = gbitmap_create_with_resource(RESOURCE_ID_IMAGE_APP_LOGO_LONG);

但我收到以下编译错误:

../src/main.c: In function 'main':
../src/main.c:120:44: error: 'RESOURCE_ID_IMAGE_APP_LOGO_LONG' undeclared (first use in this function)
../src/main.c:120:44: note: each undeclared identifier is reported only once for each function it appears in
Waf: Leaving directory `/tmp/tmpGhVqKn/build'
Build failed

这是我的 appinfo.json 文件包含的内容,我是从应用程序的设置部分下载的。可以看到图片都添加了相同的标识符。

{
    "appKeys": {
        "agency": 0,
        "cleanStops": 11,
        "error": 10,
        "eta": 8,
        "getEta": 9,
        "getRoutes": 5,
        "index": 1,
        "refresh": 4,
        "routeId": 6,
        "routeName": 7,
        "stopId": 2,
        "stopName": 3
    },
    "capabilities": [
        "location",
        "configurable"
    ],
    "companyName": "joshua103us@yahoo.com",
    "longName": "DoublePebble",
    "projectType": "native",
    "resources": {
        "media": [
            {
                "file": "images/doublemap_menu_icon.png",
                "menuIcon": true,
                "name": "IMAGE_DOUBLEMAP_MENU_ICON",
                "type": "png"
            },
            {
                "file": "images/spoon_long_med-2.png",
                "name": "RESOURCE_ID_IMAGE_APP_LOGO_LONG",
                "type": "png"
            }
        ]
    },
    "sdkVersion": "3",
    "shortName": "DoublePebble",
    "targetPlatforms": [
        "aplite",
        "basalt"
    ],
    "uuid": "409b7111-c0bf-43bd-a90c-8a44c33d1eb3",
    "versionLabel": "1.0",
    "watchapp": {
        "watchface": false
    }
}

系统将资源标识符的RESOURCE_ID_部分添加到您在appinfo.json

中指定的名称中

例如:

{
  "file": "images/doublemap_menu_icon.png",
  "menuIcon": true,
  "name": "IMAGE_DOUBLEMAP_MENU_ICON",
  "type": "png"
},

然后您将使用 RESOURCE_ID_DOUBLEMAP_MENU_ICON。

就我而言,我在 Cloudpebble 环境中遇到了同样的问题,显然即使在使用 http://www.watchface-generator.de/converter/ 格式化图像并按照 Pebble 教程保存资源后,CloudPebble 仍然无法识别。它只是在我点击 CloudPebble 环境的编译部分中的 "Run Build" 之后才发生...只是想节省其他一些宝贵的时间:)

在 Cloudpebble 环境中工作时的另一个有用注意事项是,您可以将鼠标悬停在资源文件的名称上,它会显示标识符的名称。

无论出于何种原因,我显示的名称与我在设置中保存的名称不同。进入并编辑名称(即使您只是删除某些内容并在编辑后保存相同的名称)并保存它应该可以解决问题。但就我而言,删除资源然后重新上传似乎可以解决我的问题。我怀疑我可能已经将它们设置为多个标识符。页面底部有一个 "Another Identifier" 按钮,我认为这是我的问题所在。当您将鼠标悬停在文件上并且它有多个名称作为标识符时,您可以看到这一点(即使它们是相同的名称)。