android二维码开源项目zxing编译 命令行编译

来源:互联网 发布:百度大数据彩票预测 编辑:程序博客网 时间:2024/04/30 21:43

加一句话:把生成的core-3.3.1-SNAPSHOT.jar放到zxing-master\android\libs目录下。


ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。

目前支持以下格式:


zxing官网说明:https://github.com/zxing/zxing/wiki/Getting-Started-Developing

源码下载:https://github.com/zxing/zxing

我下载的是releases版本:https://github.com/zxing/zxing/releases


需要的工具:

Ant: http://ant.apache.org/bindownload.cgi


Maven: http://maven.apache.org/download.cgi


我下载的是Windows版的,如果是Linux需要下载Linux版,这里只尝试Windows下编译。

下载后在合适的目录下解压,将bin目录添加到环境变量,跟JDK方法一样。

这里只配置下ant的环境变量

1.我的电脑右键


2.点击“属性”


3.点击“环境变量”


4.点击“编辑”


添加解压后的bin到Path就可以了,记得用;结束,验证下


配置编译

确保你已经有了Java运行环境,如JAVA_HOME、CLASSPATH、PATH都配置好了

进入到zxing-zxing-3.1.0\Android目录,输入命令:android update project --path .

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. D:\zxing\zxing-zxing-3.1.0\android>android update project --path .  
  2. Error: The project either has no target set or the target is invalid.  
  3. Please provide a --target to the 'android.bat update' command.  
  4.   
  5. D:\zxing\zxing-zxing-3.1.0\android>  

但提示出错了,需要我们提供一个target,输入命令:android list targets

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. D:\zxing\zxing-zxing-3.1.0\android>android list targets  
  2. Available Android targets:  
  3. ----------  
  4. id: 1 or "android-7"  
  5.      Name: Android 2.1  
  6.      Type: Platform  
  7.      API level: 7  
  8.      Revision: 3  
  9.      Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854  
  10.      ABIs : armeabi  
  11. ----------  
  12. id: 2 or "android-8"  
  13.      Name: Android 2.2  
  14.      Type: Platform  
  15.      API level: 8  
  16.      Revision: 3  
  17.      Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854  
  18.      ABIs : armeabi  
  19. ----------  
  20. id: 3 or "android-10"  
  21.      Name: Android 2.3.3  
  22.      Type: Platform  
  23.      API level: 10  
  24.      Revision: 2  
  25.      Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854  
  26.      ABIs : armeabi, x86  
  27. ----------  
  28. id: 4 or "android-11"  
  29.      Name: Android 3.0  
  30.      Type: Platform  
  31.      API level: 11  
  32.      Revision: 2  
  33.      Skins: WXGA (default)  
  34.      ABIs : armeabi  
  35. ----------  
  36. id: 5 or "android-12"  
  37.      Name: Android 3.1  
  38.      Type: Platform  
  39.      API level: 12  
  40.      Revision: 3  
  41.      Skins: WXGA (default)  
  42.      ABIs : armeabi  
  43. ----------  
  44. id: 6 or "android-13"  
  45.      Name: Android 3.2  
  46.      Type: Platform  
  47.      API level: 13  
  48.      Revision: 1  
  49.      Skins: WXGA (default)  
  50.      ABIs : armeabi  
  51. ----------  
  52. id: 7 or "android-14"  
  53.      Name: Android 4.0  
  54.      Type: Platform  
  55.      API level: 14  
  56.      Revision: 3  
  57.      Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W  
  58. XGA720, WXGA800  
  59.      ABIs : no ABIs.  
  60. ----------  
  61. id: 8 or "android-15"  
  62.      Name: Android 4.0.3  
  63.      Type: Platform  
  64.      API level: 15  
  65.      Revision: 3  
  66.      Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W  
  67. XGA720, WXGA800  
  68.      ABIs : no ABIs.  
  69. ----------  
  70. id: 9 or "android-16"  
  71.      Name: Android 4.1.2  
  72.      Type: Platform  
  73.      API level: 16  
  74.      Revision: 4  
  75.      Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W  
  76. XGA720, WXGA800, WXGA800-7in  
  77.      ABIs : no ABIs.  
  78. ----------  
  79. id: 10 or "android-17"  
  80.      Name: Android 4.2.2  
  81.      Type: Platform  
  82.      API level: 17  
  83.      Revision: 2  
  84.      Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W  
  85. XGA720, WXGA800, WXGA800-7in  
  86.      ABIs : no ABIs.  
  87. ----------  
  88. id: 11 or "android-18"  
  89.      Name: Android 4.3  
  90.      Type: Platform  
  91.      API level: 18  
  92.      Revision: 1  
  93.      Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W  
  94. XGA720, WXGA800, WXGA800-7in  
  95.      ABIs : armeabi-v7a, x86  
  96. ----------  
  97. id: 12 or "android-19"  
  98.      Name: Android 4.4.2  
  99.      Type: Platform  
  100.      API level: 19  
  101.      Revision: 3  
  102.      Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W  
  103. XGA720, WXGA800, WXGA800-7in  
  104.      ABIs : no ABIs.  
  105.   
  106. D:\zxing\zxing-zxing-3.1.0\android>  
根据输出的ID,加上target,命令:android update project --target 14 --path .
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. D:\zxing\zxing-zxing-3.1.0\android>android update project --target 7 --path .  
  2. Updated and renamed default.properties to project.properties  
  3. Updated local.properties  
  4. No project name specified, using Activity name 'CaptureActivity'.  
  5. If you wish to change it, edit the first line of build.xml.  
  6. Added file D:\zxing\zxing-zxing-3.1.0\android\build.xml  
  7. Added file D:\zxing\zxing-zxing-3.1.0\android\proguard-project.txt  
  8.   
  9. D:\zxing\zxing-zxing-3.1.0\android>  
会生成以下文件


其中:local.properties文件的内容是:SDK的目录

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. # This file is automatically generated by Android Tools.  
  2. # Do not modify this file -- YOUR CHANGES WILL BE ERASED!  
  3. #  
  4. # This file must *NOT* be checked into Version Control Systems,  
  5. # as it contains information specific to your local configuration.  
  6.   
  7. # location of the SDK. This is only used by Ant  
  8. # For customization when using a Version Control System, please read the  
  9. # header note.  
  10. sdk.dir=E:\\Android\\adt-bundle-windows-x86\\sdk  
编译jar包在zxing-zxing-3.1.0\core目录下输入:mvn -DskipTests -Dgpg.skip=true install

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. D:\zxing\zxing-zxing-3.1.0\core>mvn -DskipTests -Dgpg.skip=true install  
  2. [INFO] Scanning for projects...  
  3. [INFO]  
  4. [INFO] ------------------------------------------------------------------------  
  5. [INFO] Building ZXing Core 3.1.0  
  6. [INFO] ------------------------------------------------------------------------  
  7. [INFO]  
  8. [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ core ---  
  9. Downloading: http://repo.maven.apache.org/maven2/classworlds/classworlds/1.1/cla  
  10. ssworlds-1.1.pom  
  11. Downloading: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-util  
  12. s/2.0.5/plexus-utils-2.0.5.pom  
  13. Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-f  
  14. iltering/1.1/maven-filtering-1.1.pom  
  15. Downloading: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-inte  
  16. rpolation/1.13/plexus-interpolation-1.13.pom  
  17. [INFO] ------------------------------------------------------------------------  
  18. [INFO] BUILD FAILURE  
  19. [INFO] ------------------------------------------------------------------------  
  20. [INFO] Total time: 2.828 s  
  21. [INFO] Finished at: 2014-07-23T10:46:18+08:00  
  22. [INFO] Final Memory: 8M/20M  
  23. [INFO] ------------------------------------------------------------------------  
  24. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2  
  25. .6:resources (default-resources) on project core: Execution default-resources of  
  26.  goal org.apache.maven.plugins:maven-resources-plugin:2.6:resources failed: Plug  
  27. in org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencie  
  28. s could not be resolved: Failed to collect dependencies at org.apache.maven.plug  
  29. ins:maven-resources-plugin:jar:2.6 -> org.apache.maven:maven-core:jar:2.0.6 -> c  
  30. lassworlds:classworlds:jar:1.1: Failed to read artifact descriptor for classworl  
  31. ds:classworlds:jar:1.1: Could not transfer artifact classworlds:classworlds:pom:  
  32. 1.1 from/to central (http://repo.maven.apache.org/maven2): repo.maven.apache.org  
  33. : Unknown host repo.maven.apache.org -> [Help 1]  
  34. [ERROR]  
  35. [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit  
  36. ch.  
  37. [ERROR] Re-run Maven using the -X switch to enable full debug logging.  
  38. [ERROR]  
  39. [ERROR] For more information about the errors and possible solutions, please rea  
  40. d the following articles:  
  41. [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResoluti  
  42. onException  
  43. D:\zxing\zxing-zxing-3.1.0\core>  
出现了以下错误信息,由于需要下载一些东西,但经常被和谐(你懂的),导致无法下载,只能用VPN
[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. [INFO] Installing D:\zxing\zxing-zxing-3.1.0\core\pom.xml to C:\Documents and Se  
  2. ttings\Administrator\.m2\repository\com\google\zxing\core\3.1.0\core-3.1.0.pom  
  3. [INFO] Installing D:\zxing\zxing-zxing-3.1.0\core\target\core-3.1.0-javadoc.jar  
  4. to C:\Documents and Settings\Administrator\.m2\repository\com\google\zxing\core\  
  5. 3.1.0\core-3.1.0-javadoc.jar  
  6. [INFO] Installing D:\zxing\zxing-zxing-3.1.0\core\target\core-3.1.0-sources.jar  
  7. to C:\Documents and Settings\Administrator\.m2\repository\com\google\zxing\core\  
  8. 3.1.0\core-3.1.0-sources.jar  
  9. [INFO] ------------------------------------------------------------------------  
  10. [INFO] BUILD SUCCESS  
  11. [INFO] ------------------------------------------------------------------------  
  12. [INFO] Total time: 04:00 min  
  13. [INFO] Finished at: 2014-07-23T10:53:25+08:00  
  14. [INFO] Final Memory: 18M/67M  
  15. [INFO] ------------------------------------------------------------------------  
  16. D:\zxing\zxing-zxing-3.1.0\core>  

运行完之后core目录下会生成一个target目录,其中:core-3.1.0.jar就是我们需要的jar包

在这里时可以直接下载jar包:http://repo1.maven.org/maven2/com/google/zxing/


编译Android项目,生成apk

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. D:\zxing\zxing-zxing-3.1.0\android>ant debug  
  2. Buildfile: D:\zxing\zxing-zxing-3.1.0\android\build.xml  
  3.   
  4. -set-mode-check:  
  5.   
  6. -set-debug-files:  
  7.   
  8. -check-env:  
  9.  [checkenv] Android SDK Tools Revision 22.0.5  
  10.  [checkenv] Installed at E:\Android\adt-bundle-windows-x86\sdk  
  11.   
  12. -setup:  
  13.      [echo] Project Name: CaptureActivity  
  14.   [gettype] Project Type: Application  
  15.   
  16. -set-debug-mode:  
  17.   
  18. -debug-obfuscation-check:  
  19.   
  20. -pre-build:  
  21.   
  22. -build-setup:  
  23. [getbuildtools] Using latest Build Tools: 18.0.1  
  24.      [echo] Resolving Build Target for CaptureActivity...  
  25. [gettarget] Project Target:   Android 4.0  
  26. [gettarget] API level:        14  
  27. [gettarget] WARNING: Attribute minSdkVersion in AndroidManifest.xml (15) is high  
  28. er than the project target API level (14)  
  29.      [echo] ----------  
  30.      [echo] Creating output directories if needed...  
  31.      [echo] ----------  
  32.      [echo] Resolving Dependencies for CaptureActivity...  
  33. [dependency] Library dependencies:  
  34. [dependency] No Libraries  
  35. [dependency]  
  36. [dependency] ------------------  
  37. [dependency] API<=15: Adding annotations.jar to the classpath.  
  38.      [echo] ----------  
  39.      [echo] Building Libraries with 'debug'...  
  40.    [subant] No sub-builds to iterate on  
  41.   
  42. -code-gen:  
  43. [mergemanifest] Found Deleted Target File  
  44. [mergemanifest] Merging AndroidManifest files into one.  
  45. [mergemanifest] Manifest merger disabled. Using project manifest only.  
  46.      [echo] Handling aidl files...  
  47.      [aidl] No AIDL files to compile.  
  48.      [echo] ----------  
  49.      [echo] Handling RenderScript files...  
  50. [renderscript] No RenderScript files to compile.  
  51.      [echo] ----------  
  52.      [echo] Handling Resources...  
  53.      [aapt] Found Deleted Target File  
  54.      [aapt] Generating resource IDs...  
  55.      [echo] ----------  
  56.      [echo] Handling BuildConfig class...  
  57. [buildconfig] Generating BuildConfig class.  
  58.   
  59. -pre-compile:  
  60.   
  61. -compile:  
  62.     [javac] Compiling 75 source files to D:\zxing\zxing-zxing-3.1.0\android\bin\  
  63. classes  
  64.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  65. id\DecodeFormatManager.java:59: 错误: -source 1.5 中不支持 diamond 运算符  
  66.     [javac]     FORMATS_FOR_MODE = new HashMap<>();  
  67.     [javac]                                    ^  
  68.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  69.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  70. id\DecodeHintManager.java:58: 错误: -source 1.5 中不支持 diamond 运算符  
  71.     [javac]     Map<String,String> map = new HashMap<>();  
  72.     [javac]                                          ^  
  73.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  74.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  75. id\DecodeThread.java:59: 错误: -source 1.5 中不支持 diamond 运算符  
  76.     [javac]     hints = new EnumMap<>(DecodeHintType.class);  
  77.     [javac]                         ^  
  78.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  79.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  80. id\HttpHelper.java:41: 错误: -source 1.5 中不支持 diamond 运算符  
  81.     [javac]   private static final Collection<String> REDIRECTOR_DOMAINS = new H  
  82. ashSet<>(Arrays.asList(  
  83.     [javac]  
  84.        ^  
  85.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  86.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  87. id\HttpHelper.java:157: 错误: -source 1.5 中不支持 multi-catch 语句  
  88.     [javac]         } catch (IOException | NullPointerException ioe) {  
  89.     [javac]                              ^  
  90.     [javac]   (请使用 -source 7 或更高版本以启用 multi-catch 语句)  
  91.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  92. id\LocaleManager.java:46: 错误: -source 1.5 中不支持 diamond 运算符  
  93.     [javac]     GOOGLE_COUNTRY_TLD = new HashMap<>();  
  94.     [javac]                                      ^  
  95.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  96.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  97. id\PreferencesFragment.java:74: 错误: -source 1.5 中不支持 diamond 运算符  
  98.     [javac]     Collection<CheckBoxPreference> checked = new ArrayList<>(checkBo  
  99. xPrefs.length);  
  100.     [javac]                                                            ^  
  101.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  102.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  103. id\ViewfinderView.java:72: 错误: -source 1.5 中不支持 diamond 运算符  
  104.     [javac]     possibleResultPoints = new ArrayList<>(5);  
  105.     [javac]                                          ^  
  106.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  107.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  108. id\book\SearchBookContentsActivity.java:214: 错误: -source 1.5 中不支持 diamond  
  109. 运算符  
  110.     [javac]           List<SearchBookContentsResult> items = new ArrayList<>(cou  
  111. nt);  
  112.     [javac]                                                                ^  
  113.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  114.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  115. id\camera\AutoFocusManager.java:39: 错误: -source 1.5 中不支持 diamond 运算符  
  116.     [javac]     FOCUS_MODES_CALLING_AF = new ArrayList<>(2);  
  117.     [javac]                                            ^  
  118.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  119.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  120. id\clipboard\ClipboardInterface.java:41: 错误: -source 1.5 中不支持 multi-catch  
  121. 语句  
  122.     [javac]       } catch (NullPointerException | IllegalStateException e) {  
  123.     [javac]                                     ^  
  124.     [javac]   (请使用 -source 7 或更高版本以启用 multi-catch 语句)  
  125.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  126. id\encode\ContactEncoder.java:80: 错误: -source 1.5 中不支持 diamond 运算符  
  127.     [javac]     Collection<String> uniques = new HashSet<>(2);  
  128.     [javac]                                              ^  
  129.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  130.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  131. id\encode\QRCodeEncoder.java:316: 错误: -source 1.5 中不支持 diamond 运算符  
  132.     [javac]     List<String> values = new ArrayList<>(keys.length);  
  133.     [javac]                                         ^  
  134.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  135.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  136. id\encode\VCardContactEncoder.java:83: 错误: -source 1.5 中不支持 diamond 运算符  
  137.   
  138.     [javac]     List<Map<String,Set<String>>> metadataForIndex = new ArrayList<>  
  139. ();  
  140.     [javac]                                                                    ^  
  141.   
  142.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  143.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  144. id\history\HistoryManager.java:93: 错误: -source 1.5 中不支持 diamond 运算符  
  145.     [javac]     List<HistoryItem> items = new ArrayList<>();  
  146.     [javac]                                             ^  
  147.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  148.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  149. id\result\supplement\BookResultInfoRetriever.java:84: 错误: -source 1.5 中不支持  
  150.  diamond 运算符  
  151.     [javac]         authors = new ArrayList<>(authorsArray.length());  
  152.     [javac]                                 ^  
  153.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  154.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  155. id\result\supplement\SupplementalInfoRetriever.java:78: 错误: -source 1.5 中不支  
  156. 持 diamond 运算符  
  157.     [javac]     textViewRef = new WeakReference<>(textView);  
  158.     [javac]                                     ^  
  159.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  160.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  161. id\share\LoadPackagesAsyncTask.java:61: 错误: -source 1.5 中不支持 diamond 运算  
  162. 符  
  163.     [javac]     List<AppInfo> labelsPackages = new ArrayList<>();  
  164.     [javac]                                                  ^  
  165.     [javac]   (请使用 -source 7 或更高版本以启用 diamond 运算符)  
  166.     [javac] 18 个错误  
  167.   
  168. BUILD FAILED  
  169. E:\Android\adt-bundle-windows-x86\sdk\tools\ant\build.xml:712: The following err  
  170. or occurred while executing this line:  
  171. E:\Android\adt-bundle-windows-x86\sdk\tools\ant\build.xml:726: Compile failed; s  
  172. ee the compiler error output for details.  
  173.   
  174. Total time: 2 seconds  
  175.   
  176. D:\zxing\zxing-zxing-3.1.0\android>  
这里报了两个问题

一、[gettarget] WARNING: Attribute minSdkVersion in AndroidManifest.xml (15) is higher than the project target API level (14)
原因是:project.properties文件中配置的target=android-14而AndroidManifest.xml文件中<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="19"/>

修改ses-sdk android:minSdkVersion="14"就可以了。 

二、是JDK版本的问题

修改:E:\Android\adt-bundle-windows-x86\sdk\tools\ant\build.xml

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <property name="java.encoding" value="UTF-8" />  
  2.     <property name="java.target" value="1.5" />  
  3.     <property name="java.source" value="1.5" />  
  4.     <property name="java.compilerargs" value="" />  
  5.     <property name="java.compiler.classpath" value="" />  
改成

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <property name="java.encoding" value="UTF-8" />  
  2.     <property name="java.target" value="7" />  
  3.     <property name="java.source" value="7" />  
  4.     <property name="java.compilerargs" value="" />  
  5.     <property name="java.compiler.classpath" value="" />  
前面的错误没有了,但出现新的问题

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. D:\zxing\zxing-zxing-3.1.0\android>ant debug  
  2. Buildfile: D:\zxing\zxing-zxing-3.1.0\android\build.xml  
  3.   
  4. -set-mode-check:  
  5.   
  6. -set-debug-files:  
  7.   
  8. -check-env:  
  9.  [checkenv] Android SDK Tools Revision 22.0.5  
  10.  [checkenv] Installed at E:\Android\adt-bundle-windows-x86\sdk  
  11.   
  12. -setup:  
  13.      [echo] Project Name: CaptureActivity  
  14.   [gettype] Project Type: Application  
  15.   
  16. -set-debug-mode:  
  17.   
  18. -debug-obfuscation-check:  
  19.   
  20. -pre-build:  
  21.   
  22. -build-setup:  
  23. [getbuildtools] Using latest Build Tools: 18.0.1  
  24.      [echo] Resolving Build Target for CaptureActivity...  
  25. [gettarget] Project Target:   Android 4.0.3  
  26. [gettarget] API level:        15  
  27.      [echo] ----------  
  28.      [echo] Creating output directories if needed...  
  29.      [echo] ----------  
  30.      [echo] Resolving Dependencies for CaptureActivity...  
  31. [dependency] Library dependencies:  
  32. [dependency] No Libraries  
  33. [dependency]  
  34. [dependency] ------------------  
  35. [dependency] API<=15: Adding annotations.jar to the classpath.  
  36.      [echo] ----------  
  37.      [echo] Building Libraries with 'debug'...  
  38.    [subant] No sub-builds to iterate on  
  39.   
  40. -code-gen:  
  41. [mergemanifest] Found Deleted Target File  
  42. [mergemanifest] Merging AndroidManifest files into one.  
  43. [mergemanifest] Manifest merger disabled. Using project manifest only.  
  44.      [echo] Handling aidl files...  
  45.      [aidl] No AIDL files to compile.  
  46.      [echo] ----------  
  47.      [echo] Handling RenderScript files...  
  48. [renderscript] No RenderScript files to compile.  
  49.      [echo] ----------  
  50.      [echo] Handling Resources...  
  51.      [aapt] Found Deleted Target File  
  52.      [aapt] Generating resource IDs...  
  53.      [echo] ----------  
  54.      [echo] Handling BuildConfig class...  
  55. [buildconfig] Generating BuildConfig class.  
  56.   
  57. -pre-compile:  
  58.   
  59. -compile:  
  60.     [javac] Compiling 73 source files to D:\zxing\zxing-zxing-3.1.0\android\bin\  
  61. classes  
  62.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  63. id\camera\CameraConfigurationManager.java:57: 错误: 找不到符号  
  64.     [javac]     cameraResolution = CameraConfigurationUtils.findBestPreviewSizeV  
  65. alue(parameters, screenResolution);  
  66.     [javac]                        ^  
  67.     [javac]   符号:   变量 CameraConfigurationUtils  
  68.     [javac]   位置: 类 CameraConfigurationManager  
  69.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  70. id\camera\CameraConfigurationManager.java:79: 错误: 找不到符号  
  71.     [javac]     CameraConfigurationUtils.setFocus(  
  72.     [javac]     ^  
  73.     [javac]   符号:   变量 CameraConfigurationUtils  
  74.     [javac]   位置: 类 CameraConfigurationManager  
  75.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  76. id\camera\CameraConfigurationManager.java:87: 错误: 找不到符号  
  77.     [javac]         CameraConfigurationUtils.setInvertColor(parameters);  
  78.     [javac]         ^  
  79.     [javac]   符号:   变量 CameraConfigurationUtils  
  80.     [javac]   位置: 类 CameraConfigurationManager  
  81.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  82. id\camera\CameraConfigurationManager.java:91: 错误: 找不到符号  
  83.     [javac]         CameraConfigurationUtils.setBarcodeSceneMode(parameters);  
  84.     [javac]         ^  
  85.     [javac]   符号:   变量 CameraConfigurationUtils  
  86.     [javac]   位置: 类 CameraConfigurationManager  
  87.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  88. id\camera\CameraConfigurationManager.java:95: 错误: 找不到符号  
  89.     [javac]         CameraConfigurationUtils.setVideoStabilization(parameters);  
  90.     [javac]         ^  
  91.     [javac]   符号:   变量 CameraConfigurationUtils  
  92.     [javac]   位置: 类 CameraConfigurationManager  
  93.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  94. id\camera\CameraConfigurationManager.java:96: 错误: 找不到符号  
  95.     [javac]         CameraConfigurationUtils.setFocusArea(parameters);  
  96.     [javac]         ^  
  97.     [javac]   符号:   变量 CameraConfigurationUtils  
  98.     [javac]   位置: 类 CameraConfigurationManager  
  99.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  100. id\camera\CameraConfigurationManager.java:97: 错误: 找不到符号  
  101.     [javac]         CameraConfigurationUtils.setMetering(parameters);  
  102.     [javac]         ^  
  103.     [javac]   符号:   变量 CameraConfigurationUtils  
  104.     [javac]   位置: 类 CameraConfigurationManager  
  105.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  106. id\camera\CameraConfigurationManager.java:148: 错误: 找不到符号  
  107.     [javac]     CameraConfigurationUtils.setTorch(parameters, newSetting);  
  108.     [javac]     ^  
  109.     [javac]   符号:   变量 CameraConfigurationUtils  
  110.     [javac]   位置: 类 CameraConfigurationManager  
  111.     [javac] D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\andro  
  112. id\camera\CameraConfigurationManager.java:151: 错误: 找不到符号  
  113.     [javac]       CameraConfigurationUtils.setBestExposure(parameters, newSettin  
  114. g);  
  115.     [javac]       ^  
  116.     [javac]   符号:   变量 CameraConfigurationUtils  
  117.     [javac]   位置: 类 CameraConfigurationManager  
  118.     [javac] 9 个错误  
  119.   
  120. BUILD FAILED  
  121. E:\Android\adt-bundle-windows-x86\sdk\tools\ant\build.xml:712: The following err  
  122. or occurred while executing this line:  
  123. E:\Android\adt-bundle-windows-x86\sdk\tools\ant\build.xml:726: Compile failed; s  
  124. ee the compiler error output for details.  
  125.   
  126. Total time: 2 seconds  
  127.   
  128. D:\zxing\zxing-zxing-3.1.0\android>  
缺少CameraConfigurationUtils类

通过搜索,在以下目录找到了这个类



直接把这个目录拷贝到D:\zxing\zxing-zxing-3.1.0\android\src\com\google\zxing\client\android\camera


[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. -do-debug:  
  2.  [zipalign] Running zip align on final apk...  
  3.      [echo] Debug Package: D:\zxing\zxing-zxing-3.1.0\android\bin\CaptureActivit  
  4. y-debug.apk  
  5. [propertyfile] Creating new property file: D:\zxing\zxing-zxing-3.1.0\android\bi  
  6. n\build.prop  
  7. [propertyfile] Updating property file: D:\zxing\zxing-zxing-3.1.0\android\bin\bu  
  8. ild.prop  
  9. [propertyfile] Updating property file: D:\zxing\zxing-zxing-3.1.0\android\bin\bu  
  10. ild.prop  
  11. [propertyfile] Updating property file: D:\zxing\zxing-zxing-3.1.0\android\bin\bu  
  12. ild.prop  
  13.   
  14. -post-build:  
  15.   
  16. debug:  
  17.   
  18. BUILD SUCCESSFUL  
  19. Total time: 11 seconds  
  20.   
  21. D:\zxing\zxing-zxing-3.1.0\android>  

apk就生成了。

也可以导入到Eclipse后再进行修改。

修改后没有报错,但在运行时出现以下问题

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. 07-23 16:32:47.234: E/AndroidRuntime(18432): FATAL EXCEPTION: main  
  2. 07-23 16:32:47.234: E/AndroidRuntime(18432): java.lang.ExceptionInInitializerError  
  3. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at java.lang.Class.newInstanceImpl(Native Method)  
  4. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at java.lang.Class.newInstance(Class.java:1319)  
  5. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at android.app.Instrumentation.newActivity(Instrumentation.java:1053)  
  6. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at com.lbe.security.service.core.client.internal.InstrumentationDelegate.newActivity(InstrumentationDelegate.java:234)  
  7. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1995)  
  8. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2105)  
  9. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at android.app.ActivityThread.access$600(ActivityThread.java:136)  
  10. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)  
  11. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at android.os.Handler.dispatchMessage(Handler.java:99)  
  12. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at android.os.Looper.loop(Looper.java:137)  
  13. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at android.app.ActivityThread.main(ActivityThread.java:4881)  
  14. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at java.lang.reflect.Method.invokeNative(Native Method)  
  15. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at java.lang.reflect.Method.invoke(Method.java:511)  
  16. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:808)  
  17. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:575)  
  18. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at dalvik.system.NativeStart.main(Native Method)  
  19. 07-23 16:32:47.234: E/AndroidRuntime(18432): Caused by: java.lang.NoClassDefFoundError: com.google.zxing.ResultMetadataType  
  20. 07-23 16:32:47.234: E/AndroidRuntime(18432):    at com.google.zxing.client.android.CaptureActivity.<clinit>(CaptureActivity.java:93)  
  21. 07-23 16:32:47.234: E/AndroidRuntime(18432):    ... 16 more  

按照网上很多说法都是把

到处搜索解决方案,终于在google的帮助下解决了。
在eclipse中 Properties -> Java Build Path -> "Order and Export"
在Order and Export选项卡中将core.jar提前到第一位 并选中它 
然后clean你的工程,这一步非常重要,别忘记了,我就忘记clean反反复复折腾了好几次
重新编译运行就可以了


估计是在core.jar之前的包里已经有了同名的class所以编译之后产生的apk运行时找不到真正的引用。而且这个包也需要被同时发布到程序中去

但对于我的工程还是会报这个错误,后来还是在网上找到的解决办法,缺少了javase-3.1.0.jar库

生成办法跟core一样D:\zxing\zxing-zxing-3.1.0\javase>mvn -DskipTests -Dgpg.skip=true install

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. D:\zxing\zxing-zxing-3.1.0\javase>mvn -DskipTests -Dgpg.skip=true install  
  2. [INFO] Scanning for projects...  
  3. [INFO]  
  4. [INFO] ------------------------------------------------------------------------  
  5. [INFO] Building ZXing Java SE extensions 3.1.0  
  6. [INFO] ------------------------------------------------------------------------  
  7. Downloading: http://repo.maven.apache.org/maven2/com/google/zxing/zxing-parent/3  
  8. .1.0/zxing-parent-3.1.0.pom  
  9. Downloaded: http://repo.maven.apache.org/maven2/com/google/zxing/zxing-parent/3.  
  10. 1.0/zxing-parent-3.1.0.pom (21 KB at 12.4 KB/sec)  
  11. [INFO]  
  12. [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ javase ---  
  13.   
  14. [INFO] Using 'UTF-8' encoding to copy filtered resources.  
  15. [INFO] skip non existing resourceDirectory D:\zxing\zxing-zxing-3.1.0\javase\src  
  16. \main\resources  
  17. [INFO]  
  18. [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ javase ---  
  19. [INFO] Changes detected - recompiling the module!  
  20. [INFO] Compiling 11 source files to D:\zxing\zxing-zxing-3.1.0\javase\target\cla  
  21. sses  
  22. [INFO]  
  23. [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ ja  
  24. vase ---  
  25. [INFO] Using 'UTF-8' encoding to copy filtered resources.  
  26. [INFO] skip non existing resourceDirectory D:\zxing\zxing-zxing-3.1.0\javase\src  
  27. \test\resources  
  28. [INFO]  
  29. [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ javase  
  30. ---  
  31. [INFO] No sources to compile  
  32. [INFO]  
  33. [INFO] --- maven-surefire-plugin:2.17:test (default-test) @ javase ---  
  34. [INFO] Tests are skipped.  
  35. [INFO]  
  36. [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ javase ---  
  37. [INFO] Building jar: D:\zxing\zxing-zxing-3.1.0\javase\target\javase-3.1.0.jar  
  38. [INFO]  
  39. [INFO] --- maven-javadoc-plugin:2.9.1:jar (attach-javadocs) @ javase ---  
  40. [INFO]  
  41. 正在加载程序包com.google.zxing.client.j2se的源文件...  
  42. 正在加载程序包com.google.zxing的源文件...  
  43. 正在构造 Javadoc 信息...  
  44. 标准 Doclet 版本 1.7.0_01  
  45. 正在构建所有程序包和类的树...  
  46. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  47. \j2se\BufferedImageLuminanceSource.html...  
  48. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  49. \j2se\CommandLineEncoder.html...  
  50. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  51. \j2se\CommandLineRunner.html...  
  52. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  53. \j2se\GUIRunner.html...  
  54. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  55. \j2se\ImageReader.html...  
  56. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  57. \j2se\MatrixToImageConfig.html...  
  58. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  59. \j2se\MatrixToImageWriter.html...  
  60. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\HtmlAs  
  61. setTranslator.html...  
  62. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\String  
  63. sResourceTranslator.html...  
  64. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\overview-frame.html...  
  65. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\packag  
  66. e-frame.html...  
  67. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\packag  
  68. e-summary.html...  
  69. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\packag  
  70. e-tree.html...  
  71. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  72. \j2se\package-frame.html...  
  73. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  74. \j2se\package-summary.html...  
  75. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  76. \j2se\package-tree.html...  
  77. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\constant-values.html...  
  78.   
  79. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\serialized-form.html...  
  80.   
  81. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  82. \j2se\class-use\MatrixToImageWriter.html...  
  83. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  84. \j2se\class-use\MatrixToImageConfig.html...  
  85. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  86. \j2se\class-use\ImageReader.html...  
  87. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  88. \j2se\class-use\GUIRunner.html...  
  89. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  90. \j2se\class-use\CommandLineRunner.html...  
  91. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  92. \j2se\class-use\CommandLineEncoder.html...  
  93. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  94. \j2se\class-use\BufferedImageLuminanceSource.html...  
  95. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\class-  
  96. use\StringsResourceTranslator.html...  
  97. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\class-  
  98. use\HtmlAssetTranslator.html...  
  99. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\packag  
  100. e-use.html...  
  101. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\com\google\zxing\client  
  102. \j2se\package-use.html...  
  103. 正在构建所有程序包和类的索引...  
  104. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\overview-tree.html...  
  105. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\index-all.html...  
  106. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\deprecated-list.html...  
  107.   
  108. 正在构建所有类的索引...  
  109. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\allclasses-frame.html..  
  110. .  
  111. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\allclasses-noframe.html  
  112. ...  
  113. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\index.html...  
  114. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\overview-summary.html..  
  115. .  
  116. 正在生成D:\zxing\zxing-zxing-3.1.0\javase\target\apidocs\help-doc.html...  
  117. [INFO] Fixed Javadoc frame injection vulnerability (CVE-2013-1571) in 1 files.  
  118. [INFO] Building jar: D:\zxing\zxing-zxing-3.1.0\javase\target\javase-3.1.0-javad  
  119. oc.jar  
  120. [INFO]  
  121. [INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ javase ---  
  122. [INFO] Building jar: D:\zxing\zxing-zxing-3.1.0\javase\target\javase-3.1.0-sourc  
  123. es.jar  
  124. [INFO]  
  125. [INFO] --- maven-install-plugin:2.5.1:install (default-install) @ javase ---  
  126. [INFO] Installing D:\zxing\zxing-zxing-3.1.0\javase\target\javase-3.1.0.jar to C  
  127. :\Documents and Settings\Administrator\.m2\repository\com\google\zxing\javase\3.  
  128. 1.0\javase-3.1.0.jar  
  129. [INFO] Installing D:\zxing\zxing-zxing-3.1.0\javase\pom.xml to C:\Documents and  
  130. Settings\Administrator\.m2\repository\com\google\zxing\javase\3.1.0\javase-3.1.0  
  131. .pom  
  132. [INFO] Installing D:\zxing\zxing-zxing-3.1.0\javase\target\javase-3.1.0-javadoc.  
  133. jar to C:\Documents and Settings\Administrator\.m2\repository\com\google\zxing\j  
  134. avase\3.1.0\javase-3.1.0-javadoc.jar  
  135. [INFO] Installing D:\zxing\zxing-zxing-3.1.0\javase\target\javase-3.1.0-sources.  
  136. jar to C:\Documents and Settings\Administrator\.m2\repository\com\google\zxing\j  
  137. avase\3.1.0\javase-3.1.0-sources.jar  
  138. [INFO] ------------------------------------------------------------------------  
  139. [INFO] BUILD SUCCESS  
  140. [INFO] ------------------------------------------------------------------------  
  141. [INFO] Total time: 01:01 min  
  142. [INFO] Finished at: 2014-07-24T12:47:45+08:00  
  143. [INFO] Final Memory: 14M/33M  
  144. [INFO] ------------------------------------------------------------------------  
  145. D:\zxing\zxing-zxing-3.1.0\javase>  

生成一个target目录


添加到工程后

Eclipse版本号:v22.0.5-757759


Eclipse版本号:v23.0.2.1259578


经测试在Eclipse:v23.0.2.1259578版本上可以运行在v22.0.5-757759版本上会报错,如果你的程序还是报错,建议换一个高版本的Eclipse试下。

扫描结果

导入Eclipse可以编译运行的源码:http://download.csdn.net/detail/deng0zhaotai/7672273

0 0