我正在使用ZBar SDK构建iOS代码扫描程序项目.我试图直接从ZBar源构建我的项目,而不是包括libzbar.a静态库.
我已经下载了ZBar源代码,其中包含用于构建libzbar.a的XCode项目.我尝试从项目中复制所有源文件,但它不起作用.我继续得到未定义的符号错误.
考虑到我只需要支持iOS,应该包含哪些源文件?
是否应严格遵循文件夹结构来构建项目?
如果我直接包含源文件,是否需要构建设置?
编辑:
我遵循相同的文件夹结构和构建libzbar的XCode项目中使用的设置.我已经设法构建了库,但它在链接时仍然失败.我收到错误:ld: duplicate symbol _OBJC_METACLASS对于所有源文件.我已经进行了双重检查,项目中没有对原始libzbar.a静态库的引用或者这些源文件不止一次出现.如果我删除它们的引用,项目构建正常,但只要引用库中的任何符号,它就会失败.我想我还是错过了什么!!
在最近的Xcode 5.1中构建应用程序时遇到了一个问题.编译失败,出现"架构x86_64的未定义符号"错误.
我使用Valid Architecture构建我的项目:armv7,armv7s和arm64.切换到最新环境(Xcode)之后,我在相同的架构中重建了libzbar.a库(我已根据以下解决方案完成了:Xcode-5中的链接器错误)
也许有人也有同样的问题,最后他解决了,请与解决方案分享:)
我将我的应用集成在一起ZBar.它在iOS 7.1及更低版本中运行良好,但在iOS 8.0设备中,我发现摄像机视图首先以黑色显示.但是,如果我将应用程序发送到后台状态并再次将其发送到前台,让相机视图打开,那么它可以工作.有人经历过这个吗?
谢谢
我面临着一个奇怪的问题.我正在使用libzbar开发一个iOS命令行条形码扫描器实用程序(是的,这是用于越狱设备).一切顺利,除非我正在尝试使用CGImageCreateWithPNGDataProvider()或CGImageCreateWithJPEGDataProvider()方法CGImageRef从文件中获取- 因为这两个函数在我的5.1.1 iPad上抛出一个段错误.问题不在我的自定义类中ZBarScanner,因为如果我使用UIImage获取图像数据,请使用类似的东西
UIImage *uiImage = [UIImage imageWithContentsOfFile:fname];
CGImageRef image = uiImage.CGImage;
Run Code Online (Sandbox Code Playgroud)
然后它工作正常并打印存储在条形码中的数据.此外,PNG和JPEG图像格式正确 - 我可以使用设备本身的文件浏览器查看它们,我也尝试了其他几个图像.我甚至试图省略所有CFRelease()函数调用和release消息,以避免有悬空指针.这是我的代码:
#define LOG() NSLog(@"Reached line %d", __LINE__)
int main(int argc, char **argv)
{
if (argc != 2)
return 1;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
LOG(); // line 21
NSString *fname = [[NSString stringWithUTF8String:argv[1]] retain]; // added an extra retain just in case
LOG(); // line 25
CFDataRef data = (CFDataRef)[NSData dataWithContentsOfFile:fname];
CGDataProviderRef dProv …Run Code Online (Sandbox Code Playgroud) 我有一个使用zbar-sdk(条形码扫描库)的项目.
将我的机器更新为xcode 4.5和ios6sdk后,我遇到了一些麻烦.
我能够在不触及任何项目的情况下构建模拟器.这是使用最新的zbar 1.2库.
然后我想构建我的ios6设备进行测试,那就是当我收到错误时.
在zbar开发者论坛上进行了一些谷歌搜索之后,我看到我需要获取zbar源并为armv7和armv7s构建libzbar.a,因为zbar开发人员还没有这样做.
请参阅 - http://sourceforge.net/projects/zbar/forums/forum/1072195/topic/5728912
所以我这样做了,将更新的libzbar.a重新导入到我的项目中.然后我为我的设备构建,它工作了!我能够将我的应用程序放到我的测试设备上,zbar条形码库运行正常.
我认为那是它的结束,但不幸的是没有.
然后我再次尝试构建模拟器(ios6),那就是它失败了.
无论我怎么做不到这个项目同时为设备和simualtor和相同的设置建立:(
构建我自己的libzbar.a文件时的libzbar.a项目设置:
架构:标准(armv7,armv7s)$(ARCHS_STANDARD_32_BIT)
仅构建活动架构:否
有效的架构:armv7 armv7s
我的项目设置(对于myapp)如下:
架构:标准(armv7,armv7s)$(ARCHS_STANDARD_32_BIT)
仅构建活动架构:否
有效的架构:armv7 armv7s
基础SDK:iOS6
iOS部署目标:iOS 5.0
尝试构建模拟器时出错:
ld: warning: ignoring file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a, missing required architecture i386 in file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
objc-class-ref in mycontroller.o
"_ZBarReaderControllerResults", referenced from:
-[mycontroller imagePickerController:didFinishPickingMediaWithInfo:] in mycontroller.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v …Run Code Online (Sandbox Code Playgroud) 在我将ZBar Sdk集成到我的项目中之后,我的xcode 5-DP开始显示以下警告:
"ld:警告:链接ObjC for iOS Simulator,但是对象文件(/Documents/Projects/Project/Utility/ZBarSDK/libzbar.a(ZBarReaderViewController.o))是为MacOSX编译的"
在我的iOS App中运行ZBar时出现了一些错误.
我在我的项目中包含了最新的Beta版本1.3.1,并在我的iOS7设备(iPhone 5)上本地运行应用程序.
尝试将其存档为Distribution时,arm64出现错误.
我试图重新编译源代码以生成我自己的libzbar.a(生成)与选定的arm64 armv7和armv7s,但即使在这里错误是相同的..
所以我该怎么做?

向你求助!
我在我的iOS应用程序中使用适用于iOS 5.0及更高版本的ZBar条形码阅读器.
我使用Camera Interface上的以下代码隐藏了信息按钮.
UIView * infoButton= infoButton = [[[[[reader.view.subviews objectAtIndex:1] subviews] objectAtIndex:0] subviews] objectAtIndex:2];
[infoButton setHidden:YES];
Run Code Online (Sandbox Code Playgroud)
但不知何故,此代码不适用于iOS6.0及更高版本.
好的,我正在使用ZBar SDK扫描我的iPhone应用程序中的条形码.我已成功实现了示例代码,但现在我想更改扫描仪视图的框架(即:屏幕尺寸的一半).我已尝试在viewDidLoad中设置阅读器视图的框架,但它会自行调整大小.我知道这将是我错过的那些非常简单的事情之一,但任何帮助都会非常感激.干杯.
编辑:我得到了它的工作.这是我的代码:
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
ZBarImageScanner *scanner = reader.scanner;
[reader setShowsZBarControls:NO];
[reader.readerView setScanCrop:(CGRect){ { 0, 0 }, { 0.43, 1 } }];
[reader.readerView start];
[self.view addSubview:reader.view];
overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
[listTableView setFrame:CGRectMake(0, 208, 320, 208)];
[overlayView addSubview:listTableView];
[self.view addSubview:overlayView];
Run Code Online (Sandbox Code Playgroud) 我正在使用Zbar阅读QRCode.我将这个https://github.com/DushyanthMaguluru/ZBarScanner示例用于我的活动.问题是如何在FrameLayout上显示cameraView?
编辑:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
mCamera = getCameraInstance();
if(!isCameraAvailable())
{
cancelRequest();
return;
}
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
mAutoFocusHandler = new Handler();
setupScanner();
mPreview = new CameraPreview(this, this, autoFocusCB);
//setContentView(mPreview);
FrameLayout preview = (FrameLayout)findViewById(R.id.cameraPreview);
preview.addView(mPreview);
}
Run Code Online (Sandbox Code Playgroud)