Android实例实现扫描二维码并生成二维码(XE8+小米5)疯狂delphi

第三方资料太大没法写在博文上,请下载CSDN的程序包。

程序包下载:

注意事项:

如果只加了Lib,然没有改AndroidManifest.xml,App在呼叫BarCode时会ANR没反应。开始可能没有官方的classes.dex,但如果发现编译出错后,请再检查一下。TMessageManager须加System.Messaging单元。

使用DelphiXE7加入JavaLibrary后,呼叫Zxing相机1.新建一个DelphiXE工程,双击"Android-AndroidADK25.1.7.32bit"。

2.依照Zxing会用到的Android权限,在project->options->usespermission加上权限。Accesswifistate//访问WIFI状态Camera//相机Changewifistate//更改WIFI状态Flashlight//手电筒Internet//互联网Readcontacts//读联系人Readhistorybookmarks//读历史书签Vibrate//颤动Writeextrnalstorage//写外置储存

3.把解好的Jar档案放到项目目录下如:"CreateActivity.jar"放到"C:\Users\zhujq-a\Desktop\Android实例之实现扫描二维码并生成二维码\"目录下。

4.引入Jar包。在"Project1"->"Android-AndroidSDK25.1.7.32bit"->Libraries->右击->"Add"->选中"C:\Users\zhujq-a\Desktop\Android实例之实现扫描二维码并生成二维码\CreateActivity.jar"->打开。

5.在"Project1"->"Compile"编译一次,产生AndroidManifest.template.xml,但不要Run手机的App。

6.修改AndroidManifest.template.xml,加入CaptureActivity的区段。位置在"

7.这个时候编译会出现下面错误讯息,表示找不到Android的资源。[PAClientError]Error:E2312C:\Users\zhujq-a\Desktop\Android实例之实现扫描二维码并生成二维码\Android\Debug\Project1\AndroidManifest.xml:53:error:Error:Noresourcefoundthatmatchesthegivenname(at'theme'withvalue

8.接下来要合并Android和Embarcadero的数据文件1>.把Android的资源复制到项目目录PS:这个地方说明一下:注意是编译后的CaptureActivity\res文件夹(这里说的JAVA中的,但不是DLEPHI中的)把"CaptureActivity\res"中的文件复制到"C:\Users\zhujq-a\Desktop\Android实例之实现扫描二维码并生成二维码\"中。2>.打包这些资源文件Project->Deployment->把drawable,layout,menu,raw,values和xml目录下的所有档案加入->修改"RemotePath"为"LocalPath"(如:"res\drawable\"的"RemotePath"为".\"改为"res\drawable\")。

9.接下来因为Zxing和Embarcadero都有相同的档案res\values\styles.xml,所以要取消其中一个,并手工把两个档案的内容合并。1>.取消官方的Styles.xmlProject->Deployment->Styles.xml去掉对号。2>.取消官方的classes.dex(20161018亲测,去掉闪退,不去掉正好)Project->Deployment->classes.dex去掉对号。PS:这个地方说明一下:开始可能没有官方的classes.dex,但如果发现编译出错后,请再检查一下。3>.把(项目目录)\Android\Debug\styles.xml和(项目目录)\res\values\styles.xml内容合并后如下打开notepad,打开文件"C:\Users\zhujq-a\Desktop\Android实例之实现扫描二维码并生成二维码\Android\Debug\styles.xml",复制如下内容:

@drawable/splash_image_def

true

打开notepad,打开文件"C:\Users\zhujq-a\Desktop\Android实例之实现扫描二维码并生成二维码\res\values\styles.xml",粘入复制的内容。位置是在"