Objective c j2objc异常阻止单元测试运行

Objective c j2objc异常阻止单元测试运行,objective-c,xcode,unit-testing,cocoapods,j2objc,Objective C,Xcode,Unit Testing,Cocoapods,J2objc,我正在开发一个使用cocoapod的应用程序,它是使用j2objc构建的。但当我尝试在Xcode中运行单元测试时,我看到以下错误: Terminating app due to uncaught exception 'JavaLangArrayStoreException', reason: 'source of type IOSByteArray is not an array' 我知道Java中的数组不能完美地映射到Objective C数组。但是这个异常并不会阻止应用程序运行,所以有没有

我正在开发一个使用cocoapod的应用程序,它是使用j2objc构建的。但当我尝试在Xcode中运行单元测试时,我看到以下错误:

Terminating app due to uncaught exception 'JavaLangArrayStoreException', reason: 'source of type IOSByteArray is not an array'
我知道Java中的数组不能完美地映射到Objective C数组。但是这个异常并不会阻止应用程序运行,所以有没有一种方法可以忽略单元测试和UI测试的异常

失败的代码在cocoapod中,所以我不确定我是否能够进行任何手动转换。下面是失败的一行:

return IOSObjectArray_Get(nil_chk([rawType getGenericInterfaces]), i);

我不知道您的代码,但您必须了解Objective-C数组与IOSByteArray不同

在使用它之前,您必须将
IOSByteArray
转换为常用的objc数组

要么用这个

- (void)getBytes:(jbyte *)buffer
          offset:(jint)offset
          length:(jint)length;
还是这个

-(NSData*)toNSData


方法来工作。

我不知道您的代码,但您必须了解Objective-C数组与IOSByteArray不同

在使用它之前,您必须将
IOSByteArray
转换为常用的objc数组

要么用这个

- (void)getBytes:(jbyte *)buffer
          offset:(jint)offset
          length:(jint)length;
还是这个

-(NSData*)toNSData


方法工作。

看起来不像是失败的行。该错误消息来自System.arraycopy,它未能说明IOSByteArray不是IOSRARY的子类。IOSObjectArray仅抛出ArrayStoreException,并显示不同的错误消息

你有单元测试的源代码吗?如果有,你能发布它或它的项目(如果是开源的)?如果您对失败的测试感到不满,那么一旦修复,您将收到通知


如果这是一个JUnit测试,那么可以像Java中一样使用try/catch块来包围失败的代码行。或者把它评论出来

这不像是失败的路线。该错误消息来自System.arraycopy,它未能说明IOSByteArray不是IOSRARY的子类。IOSObjectArray仅抛出ArrayStoreException,并显示不同的错误消息

你有单元测试的源代码吗?如果有,你能发布它或它的项目(如果是开源的)?如果您对失败的测试感到不满,那么一旦修复,您将收到通知


如果这是一个JUnit测试,那么可以像Java中一样使用try/catch块来包围失败的代码行。或者把它评论出来

提供您的代码提供您的代码请参见修改后的问题。转换IOSByteArray将是理想的解决方案,但我无法直接访问它,因为它位于cocoapod内。此外,当我运行应用程序时,异常不会导致应用程序崩溃,因此如果有一种方法可以忽略它,那就好了。请参阅修改后的问题。转换IOSByteArray将是理想的解决方案,但我无法直接访问它,因为它位于cocoapod内。此外,当我运行应用程序时,异常不会导致应用程序崩溃,因此如果有一种方法可以忽略它就好了。