我正在使用使用AVFoundation框架的ios项目。我使用xcode5和ios7。从构建阶段添加框架并导入它并开始构建项目之后。 xcode给了我错误:
ld:警告:忽略文件/Users/ahmadnasser/Desktop/AVFoundation.framework/AVFoundation,缺少文件/Users/ahmadnasser/Desktop/AVFoundation.framework/AVFoundation中需要的架构armv7(2个切片) 架构armv7s的未定义符号: “_OBJC_CLASS _ $ _ AVAudioPlayer”,引自: RegistrationViewController.o中的objc-class-ref ld:找不到架构armv7s的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
代码是:
NSURL *soundURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"whistle" ofType:@"mp3"]];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil];
[audioPlayer setNumberOfLoops:INFINITY];
[audioPlayer prepareToPlay];
[audioPlayer play];
当我只导入并定义一个对象
时,会有一个注释AVAudioPlayer *audioPlayer;
[audioPlayer setNumberOfLoops:INFINITY];
[audioPlayer prepareToPlay];
[audioPlayer play];
代码编译没有问题。我真的需要帮助
答案 0 :(得分:0)
添加CoreVideo和CoreMedia框架
您似乎还没有将CFNetwork.framework和Security.framework,AVFoundation框架,SystemConfiguration.framework,MediaPlayer框架添加到您的项目中。在Xcode中的“要链接的库”部分添加它们,一切都应该没问题。
或
通过将构建设置中的库搜索路径更改为
来解决此问题./ Classes“$(SRCROOT)/ Classes”
以防万一其他人发现这一点,并想尝试一下。
编辑:只是补充一下,我现在又遇到了同样的问题。它之所以发生这种情况,是因为我更改了.xcodeproj文件所在的文件夹名称。因此,在我的Mac上的一个文件夹中,我有一个名为App Name的目录,名为App Name.xcodeproj的文件。我将目录App Name更改为不同的东西,尽管更新了xcode中的构建设置,仍然遇到了同样的问题。我必须做的是
右键单击App Name.xcodeproj 单击显示包内容 打开project.pbxproj 然后cmd + f(搜索)并输入App Name,我认为只有两个地方,它们是页面下方的1/3,名为name,紧接在下面,path。将它们更改为新目录名称,保存并重新打开项目,一切都应该正常。