最近apk在ios上面测试总是会遇到奇奇怪怪的问题,现在是两个项目要集成在一个apk中所以将两个项目运行之后都是编译成了.a文件,然后在两个.a文件中都设置了两个意义相同变量名相同的全局变量(标识当前发生错误的时间和错误码),然后在运行的过程中,当sdk询问A.a时A.a会询问B.a是否发生错误,然后返回xml信息。

  有这样一个情景:当B.a没有发生错误,A.a发生错误,然后当SDK询问A.a时,A.a询问B.a的时候,B.a会返回的xml是发生错误,并且时间戳是A.a发生错误的时间戳,但错误码是初始的状态,因为A.a和B.a里面的错误状态不一样,所以定义的错误码的全局变量名不一样。

  解析原因是因为,在声明的时候是全局变量,并且在赋值的时候都是extern额外引用了这个变量,然后就在赋值的时候就不知道是要引用哪个.a的全局变量了,解决方法是,将两个项目中的全局变量改成不同的变量名,这样就不会在赋值引用的时候不知道要用哪个.a里面的变量了

05-26 13:48