1

我在我的应用程序中集成了 Aviary SDK 以增强我的应用程序图像编辑器功能。我阅读了它的文档,运行了它的示例代码,它运行良好。但是在我的应用程序上运行时,我遇到了一个问题。它在运行一个方法后崩溃了 EXC_BAD_ACCESS

[AFOpenGLManager beginOpenGLLoad];

我遵循了 Aviary 文档上的设置指南 https://developers.aviary.com/docs/ios/setup-guide#project-setup

一开始,我只是创建了一个 Singleton manager 来管理。我调用 [AFOpenGLManager beginOpenGLLoad]; 关于初始化函数

- (id)init {
     if (self = [super init]) {        
         [AFOpenGLManager beginOpenGLLoad];
     }
     return self;
}

- (void) launchPhotoEditorWithImage:(UIImage *)editingResImage
            highResolutionImage:(UIImage *)highResImage
                 fromController:(UIViewController *)controller
{
       // Customize the editor's apperance. The customization options really only need to be set       
       once in this case since they are never changing, so we used dispatch once here.
       static dispatch_once_t onceToken;
       dispatch_once(&onceToken, ^{
             [self setPhotoEditorCustomizationOptions];
       });

       // Initialize the photo editor and set its delegate
       AFPhotoEditorController * photoEditor = [[[AFPhotoEditorController alloc]   
                                            initWithImage:editingResImage] autorelease];
       [photoEditor setDelegate:self];

       // If a high res image is passed, create the high res context with the image and the 
       photo editor.
       if (highResImage) {
            [self setupHighResContextForPhotoEditor:photoEditor withImage:highResImage];
       }

       // Present the photo editor.
       [controller presentViewController:photoEditor animated:YES completion:nil];
}

在运行 init 函数后,它崩溃了

在此处输入图像描述

我错过了什么吗,示例代码运行良好。

编辑 1:从 createProgram 调用 compileShader 但我可以阅读此方法

在此处输入图像描述

编辑2:我意识到一些事情。我的应用项目有一个名为 libmediastreamer_voip.a 的库。我认为存在误解。我的意思是也许 Aviary lib 和 libmediastreamer_voip.a lib 也有名为 compileShader 的函数。因此,当在 Aviary lib 上调用 compileShader 时,它在 Aviary lib 上的 compileShader 上运行,但在 libmediastreamer_voip.a 上运行到 compileShader。我想我会是这样吗?我创建了一个新项目并集成了 Avairy SDK,它运行良好,只是集成到我的应用程序它崩溃

4

2 回答 2

1

我是 Aviary iOS 团队的成员。这是由我们的 compileShader 函数和您的函数之间的冲突引起的。我们的函数没有正确命名空间并导致冲突。我们将在 SDK 的下一个版本中解决这个问题。

迈克尔

于 2014-11-03T20:56:53.433 回答
0

我怎么想。检查你的shader价值。GL_VERTEX_SHADER它应该具有来自您的资源或具有适当类型(或GL_FRAGMENT_SHADER)的其他地方的正确着色器路径。

在我看来你是零

于 2014-07-29T07:08:01.560 回答