从QR码库处理的QR码扫描器示例代码未在Android手机上运行

时间:2016-06-19 14:41:40

标签: android java-8 processing qr-code

我正在尝试在处理(版本3)中运行qr代码扫描的代码。我正在使用QR码库中已经提供的示例代码。我已经安装了JDK 8和android SDK,仍然无法在我的Android手机上运行该应用程序。它正在安装但在运行时自行关闭(显示“不幸的是,QR代码示例已停止”)(我已经尝试了其他一些示例并且它有效!)。

我在此添加代码(这应该是正确的,因为它是一个示例代码,我没有做任何更改)只是为了参考和控制台中显示的错误。由于我是编程新手,我无法弄清楚错误的确切含义。有人请看看并帮助我。

提前多多感谢。

 /*
QRcode reader
 Generate images from a QRcode generator such as
 http://qrcode.kaywa.com/ and put them in this sketch's
 data folder.
 Press spacebar to read from the camera, generate an image,
 and scan for barcodes.  Press f to read from a file and scan.
 Press s for camera settings.
 Created 9 June 2007
 by Tom Igoe / Daniel Shiffman
 */


import processing.video.*;
import qrcodeprocessing.*;

Capture video;                                 // instance of the video capture library
String statusMsg = "Waiting for an image";     // a string to return messages:

// Decoder object from prdecoder library
Decoder decoder;

void setup() {
  size(400, 320);
  video = new Capture(this, 320, 240);
  video.start();

  // Create a decoder object
  decoder = new Decoder(this);
}

// When the decoder object finishes
// this method will be invoked.
void decoderEvent(Decoder decoder) {
  statusMsg = decoder.getDecodedString();
}

void captureEvent(Capture video) {
  video.read();
}

void draw() {
  background(0);

  // Display video
  image(video, 0, 0);
  // Display status
  text(statusMsg, 10, height-4);

  // If we are currently decoding
  if (decoder.decoding()) {
    // Display the image being decoded
    PImage show = decoder.getImage();
    image(show, 0, 0, show.width/4, show.height/4); 
    statusMsg = "Decoding image";
    for (int i = 0; i < (frameCount/2) % 10; i++) statusMsg += ".";
  }
}

void keyReleased() {
  // Depending on which key is hit, do different things:
  switch (key) {
  case ' ':        
    // Spacebar takes a picture and tests it:
    // copy it to the PImage savedFrame:
    PImage savedFrame = createImage(video.width, video.height, RGB);
    savedFrame.copy(video, 0, 0, video.width, video.height, 0, 0, video.width, video.height);
    savedFrame.updatePixels();
    // Decode savedFrame
    decoder.decodeImage(savedFrame);
    break;
  case 'f':    // f runs a test on a file
    PImage preservedFrame = loadImage("qrcode.png");
    // Decode file
    decoder.decodeImage(preservedFrame);
    break;
  }
}

这是错误报告。

    [mkdir] Created dir: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin
     [echo] org.eclipse.jdt.core.JDTCompilerAdapter

-set-mode-check:

-set-debug-files:

-check-env:
Android SDK Tools Revision 25.1.7
Installed at C:\Users\rahul\Documents\Processing\modes\AndroidMode\sdk

-setup:
     [echo] Project Name: QRCodeExample
Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
Using latest Build Tools: 24.0.0 rc4
     [echo] Resolving Build Target for QRCodeExample...
Project Target:   Android 6.0
API level:        23
     [echo] ----------
     [echo] Creating output directories if needed...
    [mkdir] Created dir: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res
    [mkdir] Created dir: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\rsObj
    [mkdir] Created dir: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\rsLibs
    [mkdir] Created dir: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\gen
    [mkdir] Created dir: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\classes
    [mkdir] Created dir: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\dexedLibs
     [echo] ----------
     [echo] Resolving Dependencies for QRCodeExample...
Library dependencies:
No Libraries

------------------
     [echo] ----------
     [echo] Building Libraries with 'debug'...
   [subant] No sub-builds to iterate on

-code-gen:
Merging AndroidManifest files into one.
Manifest merger disabled. Using project manifest only.
     [echo] Handling aidl files...
No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
     [echo] ----------
     [echo] Handling Resources...
Generating resource IDs...
     [echo] ----------
     [echo] Handling BuildConfig class...
Generating BuildConfig class.

-pre-compile:

-compile:
    [javac] Compiling 4 source files to C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\classes
----------
1. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 4)
    import processing.data.*; 
           ^^^^^^^^^^^^^^^
The import processing.data is never used
----------
2. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 5)
    import processing.event.*; 
           ^^^^^^^^^^^^^^^^
The import processing.event is never used
----------
3. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 6)
    import processing.opengl.*; 
           ^^^^^^^^^^^^^^^^^
The import processing.opengl is never used
----------
4. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 11)
    import java.util.HashMap; 
           ^^^^^^^^^^^^^^^^^
The import java.util.HashMap is never used
----------
5. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 12)
    import java.util.ArrayList; 
           ^^^^^^^^^^^^^^^^^^^
The import java.util.ArrayList is never used
----------
6. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 13)
    import java.io.File; 
           ^^^^^^^^^^^^
The import java.io.File is never used
----------
7. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 14)
    import java.io.BufferedReader; 
           ^^^^^^^^^^^^^^^^^^^^^^
The import java.io.BufferedReader is never used
----------
8. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 15)
    import java.io.PrintWriter; 
           ^^^^^^^^^^^^^^^^^^^
The import java.io.PrintWriter is never used
----------
9. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 16)
    import java.io.InputStream; 
           ^^^^^^^^^^^^^^^^^^^
The import java.io.InputStream is never used
----------
10. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 17)
    import java.io.OutputStream; 
           ^^^^^^^^^^^^^^^^^^^^
The import java.io.OutputStream is never used
----------
11. WARNING in C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\src\processing\test\qrcodeexample\QRCodeExample.java (at line 18)
    import java.io.IOException; 
           ^^^^^^^^^^^^^^^^^^^
The import java.io.IOException is never used
----------
11 problems (11 warnings)

-post-compile:

-obfuscate:

-dex:
input: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\classes
input: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\qrcodeprocessing.jar
input: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\gstreamer-java.jar
input: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\video.jar
input: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\jna.jar
input: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\processing-core.jar
input: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\qrcode.jar
Pre-Dexing C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\qrcodeprocessing.jar -> qrcodeprocessing-e0f68c0ac279966ab95e5f6515104871.jar
Pre-Dexing C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\gstreamer-java.jar -> gstreamer-java-d1933e0463161ece1a19c077f43e4ba6.jar
Pre-Dexing C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\video.jar -> video-e674dd3032ffd15eae0908334b2f493e.jar
Pre-Dexing C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\jna.jar -> jna-de64a2cde02c00ee2f942b718e389e21.jar
Pre-Dexing C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\processing-core.jar -> processing-core-51bd73b29340db555e7a49941792c93e.jar
Pre-Dexing C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\libs\qrcode.jar -> qrcode-6164974c3d18fd7eabc11f7143b49b00.jar
Converting compiled files and external libraries into C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\classes.dex...
       [dx] Merged dex #1 (8 defs/5.7KiB)
       [dx] Merged dex #2 (899 defs/521.6KiB)
       [dx] Merged dex #3 (107 defs/156.1KiB)
       [dx] Merged dex #4 (160 defs/684.4KiB)
       [dx] Merged dex #5 (31 defs/66.3KiB)
       [dx] Merged dex #6 (2 defs/3.6KiB)
       [dx] Merged dex #7 (12 defs/34.2KiB)
       [dx] Result is 1219 defs/1774.0KiB. Took 0.5s

-crunch:
   [crunch] Crunching PNG Files in source dir: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\res
   [crunch] To destination dir: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res
   [crunch] Processing image to cache: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\res\drawable-hdpi\icon.png => C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res\drawable-hdpi\icon.png
   [crunch]   (processed image to cache entry C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res\drawable-hdpi\icon.png: 47% size of source)
   [crunch] Processing image to cache: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\res\drawable-ldpi\icon.png => C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res\drawable-ldpi\icon.png
   [crunch]   (processed image to cache entry C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res\drawable-ldpi\icon.png: 0% size of source)
   [crunch] Processing image to cache: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\res\drawable-xhdpi\icon.png => C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res\drawable-xhdpi\icon.png
   [crunch]   (processed image to cache entry C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res\drawable-xhdpi\icon.png: 32% size of source)
   [crunch] Processing image to cache: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\res\drawable\icon.png => C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res\drawable\icon.png
   [crunch]   (processed image to cache entry C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\res\drawable\icon.png: 0% size of source)
   [crunch] Crunched 4 PNG files to update cache

-package-resources:
Creating full resource package...
     [aapt] Warning: AndroidManifest.xml already defines debuggable (in http://schemas.android.com/apk/res/android); using existing value in manifest.

-package:
Current build type is different than previous build: forced apkbuilder run.
Creating QRCodeExample-debug-unaligned.apk and signing it with a debug key...

-post-package:

-do-debug:
Running zip align on final apk...
     [echo] Debug Package: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\QRCodeExample-debug.apk
[propertyfile] Creating new property file: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\build.prop
[propertyfile] Updating property file: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\build.prop
[propertyfile] Updating property file: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\build.prop
[propertyfile] Updating property file: C:\Users\rahul\AppData\Local\Temp\android8283714235284511395sketch\bin\build.prop

-post-build:

debug:
FATAL EXCEPTION: Animation Thread
Process: processing.test.qrcodeexample, PID: 26665
java.lang.NoSuchFieldError: processing.core.PApplet.platform
    at processing.video.Capture.<clinit>(Unknown Source)
    at processing.test.qrcodeexample.QRCodeExample.setup(QRCodeExample.java:46)
    at processing.core.PApplet.handleDraw(Unknown Source)
    at processing.core.PGraphicsAndroid2D.requestDraw(Unknown Source)
    at processing.core.PApplet.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:841)
FATAL EXCEPTION: Animation Thread
Process: processing.test.qrcodeexample, PID: 28074
java.lang.NoSuchFieldError: processing.core.PApplet.platform
    at processing.video.Capture.<clinit>(Unknown Source)
    at processing.test.qrcodeexample.QRCodeExample.setup(QRCodeExample.java:46)
    at processing.core.PApplet.handleDraw(Unknown Source)
    at processing.core.PGraphicsAndroid2D.requestDraw(Unknown Source)
    at processing.core.PApplet.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:841)
FATAL EXCEPTION: Animation Thread
Process: processing.test.qrcodeexample, PID: 28114
java.lang.NoSuchFieldError: processing.core.PApplet.platform
    at processing.video.Capture.<clinit>(Unknown Source)
    at processing.test.qrcodeexample.QRCodeExample.setup(QRCodeExample.java:46)
    at processing.core.PApplet.handleDraw(Unknown Source)
    at processing.core.PGraphicsAndroid2D.requestDraw(Unknown Source)
    at processing.core.PApplet.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:841)

2 个答案:

答案 0 :(得分:0)

您似乎正在使用与Android不兼容的库。

您的代码使用视频库。视频库使用名为platform的变量。它无法找到该变量,这就是您收到错误的原因。

您说您正在使用最新版本的处理,而looking at the code我确实看到了platform变量。但是,对于Android处理looking at the code,我看不到变量。这导致了您的错误。

您必须找到与Android兼容的库,然后再使用它。涉及库的处理示例将自动在Android模式下工作。

您必须使用Google搜索才能找到适合您的图书馆。祝你好运。

答案 1 :(得分:0)

最后,我发现草图权限导致我的应用程序崩溃。由于我需要为qr代码扫描启用我的相机,我必须为相机启用草图权限。我现在正在努力,很快就会提供完整的解决方案。