开发者社区> 问答> 正文

google protobuffer UIWebView 在5S真机环境?报错


在5S真机环境下

项目中导入google protobuffer  ,然后再

 UIWebView *myweb= [[UIWebView alloc] initWithFrame:CGRectMake(0,0, 320,360)];
 myweb.delegate=self;
 [self.view addSubview:myweb];

就会报exc_bad_access的错误。 不用 addSubview 不会报错。

可能是UIWebView对象初始化后,不知道怎么回事被消毁了。

其它机型一切正常,没有这个问题。只是在5S真机环境下报错。

展开
收起
爱吃鱼的程序员 2020-06-22 12:55:37 398 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    自己解决了。Google了一下。

    crash的地方是Libproto.dylib,这个库是Apple自带的,而项目中是没有使用到这个库的。
     (iPhone5SandapparentlyiPadair),在最新的3个设备上有个库自带了一个Protobuf,和项目中的protobuf的namespace是一样的,这样就就产生了冲突。
     办法就很简单了:
     
     使用protobuf源代码(正好这项目原来就使用源代码)
     修改google\protobuf\stubs\common.h,加入一行宏定义#definegooglegoogle_private,修改本地的命名空间

    2020-06-22 12:55:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
深入剖析 iOS 性能优化 立即下载
深入剖析iOS性能优化 立即下载
基于WebAssembly的H265播放器 立即下载