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" 按钮,我认为这是我的问题所在。当您将鼠标悬停在文件上并且它有多个名称作为标识符时,您可以看到这一点(即使它们是相同的名称)。
我已经通过资源旁边的 '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" 按钮,我认为这是我的问题所在。当您将鼠标悬停在文件上并且它有多个名称作为标识符时,您可以看到这一点(即使它们是相同的名称)。