Cobalt 在开始时因字体问题而崩溃
Cobalt crash at start with font issue
cobalt时运行会崩溃如下,好像需要一些字体文件,请问需要什么字体,放在哪里?:
Caught signal: SIGSEGV(11)
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
.....
你可以查看crash的backtrace,你会发现当你运行 Cobalt时需要从content/data/fonts
获取字体,而content/data/fonts
是在building done Cobalt后创建的在 out/linux-x11directfb_qa/content/data/fonts(x11 directfb build)
中,因此您需要将整个内容文件从 out/linux-x11directfb_qa/
复制到您的钴二进制文件所在的位置。
bool SbSystemGetPath(SbSystemPathId path_id, char* out_path, int path_size) {
if (!out_path || !path_size) {
return false;
}
const int kPathSize = PATH_MAX;
char path[kPathSize];
path[0] = '[=10=]';
switch (path_id) {
case kSbSystemPathContentDirectory: {
if (!GetExecutableDirectory(path, kPathSize)) {
return false;
}
if (SbStringConcat(path, "/content/data", kPathSize) >= kPathSize) {
return false;
}
break;
}
cobalt时运行会崩溃如下,好像需要一些字体文件,请问需要什么字体,放在哪里?:
Caught signal: SIGSEGV(11)
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
SkFontMgr_CobaltDefaultFont() [0xcc6204]
.....
你可以查看crash的backtrace,你会发现当你运行 Cobalt时需要从content/data/fonts
获取字体,而content/data/fonts
是在building done Cobalt后创建的在 out/linux-x11directfb_qa/content/data/fonts(x11 directfb build)
中,因此您需要将整个内容文件从 out/linux-x11directfb_qa/
复制到您的钴二进制文件所在的位置。
bool SbSystemGetPath(SbSystemPathId path_id, char* out_path, int path_size) {
if (!out_path || !path_size) {
return false;
}
const int kPathSize = PATH_MAX;
char path[kPathSize];
path[0] = '[=10=]';
switch (path_id) {
case kSbSystemPathContentDirectory: {
if (!GetExecutableDirectory(path, kPathSize)) {
return false;
}
if (SbStringConcat(path, "/content/data", kPathSize) >= kPathSize) {
return false;
}
break;
}