सवाल एंड्रॉइड स्टूडियो में जेडएक्सिंग को एकीकृत करें


मैं अपने द्वारा किए गए सभी चरणों को समझाऊंगा और अंत में समस्या क्या है।

  1. ZXing-2.2 डाउनलोड करें https://code.google.com/p/zxing/downloads/list
  2. Zxing-2.2 में सभी को एक्स्ट्राक करें।
  3. अपाचे चींटी डाउनलोड और इंस्टॉल करें http://www.youtube.com/watch?v=XJmndRfb1TU
  4. विंडोज कमांडलाइन (रन-> सीएमडी) के उपयोग के साथ निकाली गई निर्देशिका पर नेविगेट करें
  5. कमांडलाइन विंडो में - 'ant -f core / build.xml' टाइप करें एंटर दबाएं और अपाचे को इसके जादू का काम करने दें

इस पल में है ZXing लाइब्रेरी को सीधे मेरे एंड्रॉइड एप्लिकेशन में एकीकृत करना

लेकिन Wooops, "Buildfile: core \ build.xml मौजूद नहीं है! बिल्ड विफल रहा। ठीक है। 6। जेएक्सिंग आयात - गायब कोर / build.xml

अब हाँ, मेरे पास कोर है .jar।

  1. ओपन एंड्रॉइड स्टूडियो, फ़ाइल -> आयात परियोजना -> चुनें / एंड्रॉइड / /zxing-2.2/ -> मौजूदा स्रोतों से परियोजना बनाएं -> परियोजना का नाम: एंडॉइड -> स्रोत फाइलें ... सभी की जांच की गई -> पुस्तकालय (कैंट कुछ भी नहीं करें) अगला -> मॉड्यूल (एंड्रॉइड चेक) अगला -> एसडीके 1.7 अगला -> समाप्त करें

प्रोजेक्ट ओपन के साथ -> बिल्ड -> प्रोजेक्ट पुनर्निर्माण करें

100 त्रुटियां 1 9 चेतावनियां

फ़ाइल -> प्रोजेक्ट स्ट्रक्चर -> लाइब्रेरीज़ -> ऐड -> जावा -> कोर.जर का चयन करें जिसे मैं पहले और ठीक बनाता हूं -> लाइब्रेरी कोर 'चयनित मॉड्यूल में जोड़ा जाएगा। (एंड्रॉइड) ठीक है -> और परियोजना संरचना संवाद में ठीक है।

बिल्ड -> परियोजना पुनर्निर्माण

15 त्रुटियां 20 चेतावनियां

सभी त्रुटियां त्रुटि हैं: निरंतर अभिव्यक्ति आवश्यक है और समझा एंड्रॉइड में ZXing प्रोजेक्ट के स्विच मामलों में त्रुटि  मैं elses के लिए सभी स्विच बदल जाते हैं।

0 त्रुटियां 20 चेतावनियां

ठीक है, अब जारी रखें:

फ़ाइल -> नई परियोजना -> zxing_demo अगला -> अगला -> खाली गतिविधि अगला -> समाप्त करें

नई परियोजना में -> फ़ाइल -> आयात मॉड्यूल -> खोज और चयन / एंड्रॉइड / ठीक -> मौजूदा स्रोतों से मॉड्यूल बनाएं अगला -> अगला -> अगला -> अगला -> समाप्त करें

अब मैं एक्सप्लोरर / एंड्रॉइड / / zging_demoProject / और बाहरी पुस्तकालयों में देख सकता हूं

अब मैं अपना कोड टी स्कैन क्यूआर बदलता हूं

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.zxing_demo"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature
    android:name="android.hardware.camera.autofocus"
    android:required="false" />
<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.zxing_demo.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:clearTaskOnLaunch="true"
        android:stateNotNeeded="true"
        android:configChanges="orientation|keyboardHidden"
        android:name="com.google.zxing.client.android.CaptureActivity"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateAlwaysHidden" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter >
            <action android:name="com.google.zxing.client.android.SCAN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

MainActivity.java

package com.example.zxing_demo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent = new Intent("com.google.zxing.client.android.SCAN");
    intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
    startActivityForResult(intent, 0);
}


public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
        }
    }
}

}

अब परीक्षण करें, चलाएं -> डीबग करें

और क्रैश।

logcat

08-31 02:58:28.085  20665-20665/com.example.zxing_demo E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.zxing_demo/com.google.zxing.client.android.CaptureActivity}: java.lang.ClassNotFoundException: com.google.zxing.client.android.CaptureActivity
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
    at android.app.ActivityThread.access$600(ActivityThread.java:127)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4448)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
    at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.ClassNotFoundException: com.google.zxing.client.android.CaptureActivity
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882)
    ... 11 more

मैं इस लाइन में AndroidManifest.xml में देख सकता हूं

android:name="com.google.zxing.client.android.CaptureActivity"

लाल में "कैप्चर एक्टिविटी" और त्रुटि कहती है: 'कैप्चर एक्टिविटी' प्रतीक को हल नहीं कर सकता

फ़ाइल -> परियोजना संरचना -> मॉड्यूल -> zxing_demo -> निर्भरता -> जोड़ें -> मॉड्यूल निर्भरता -> एंड्रॉइड ठीक -> लागू करें और ठीक है

अब कैप्चर एक्टिविटी अच्छा दिखता है

फिर से डीबग करें

08-31 03:06:58.513  21740-21740/com.example.zxing_demo E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.zxing_demo/com.google.zxing.client.android.CaptureActivity}: java.lang.ClassNotFoundException: com.google.zxing.client.android.CaptureActivity
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
    at android.app.ActivityThread.access$600(ActivityThread.java:127)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4448)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
    at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.ClassNotFoundException: com.google.zxing.client.android.CaptureActivity
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882)
    ... 11 more

मुझे लगता है कि मैं एप्लिकेशन और इरादों का उपयोग करूंगा, लेकिन अब मैं यह काम करना चाहता हूं, अगर कोई अब क्या होता है तो कृपया मुझे बताएं।


76
2017-08-31 01:42


मूल


इस प्रश्न में बहुत सारे विचार हैं, इसलिए अगर यह किसी की मदद करता है [यहां मेरी बहुत ही समस्या है] [1] [1]: stackoverflow.com/questions/20334572/... - Daniel Wilson


जवाब:


मैं एक एंड्रॉइड एप्लिकेशन में जेएक्सएंग को एकीकृत कर रहा था और इनपुट के लिए कोई अच्छा स्रोत नहीं था, मैं आपको एक संकेत देता हूं कि मेरे लिए क्या काम करता है - क्योंकि यह बहुत आसान साबित हुआ

एक असली आसान गिट भंडार है जो प्रदान करता है zxing एंड्रॉइड लाइब्रेरी प्रोजेक्ट एक एएआर आर्काइव के रूप में।

आपको बस इतना करना है कि इसे अपने build.gradle में जोड़ें

repositories {
    jcenter()
}

dependencies {
    implementation 'com.journeyapps:zxing-android-embedded:3.0.2@aar'
    implementation 'com.google.zxing:core:3.2.0'
}

और ग्रैडल कोड को संकलित करने के लिए सभी जादू करता है और इसे आपके ऐप में पहुंच योग्य बनाता है।

स्कैनर को बाद में शुरू करने के लिए, इस वर्ग / विधि का उपयोग करें: गतिविधि से:

new IntentIntegrator(this).initiateScan(); // `this` is the current Activity

एक टुकड़े से:

IntentIntegrator.forFragment(this).initiateScan(); // `this` is the current Fragment
// If you're using the support library, use IntentIntegrator.forSupportFragment(this) instead.

कई अनुकूलन विकल्प हैं:

IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES);
integrator.setPrompt("Scan a barcode");
integrator.setCameraId(0);  // Use a specific camera of the device
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(true);
integrator.initiateScan();

उनके पास एक नमूना परियोजना और कई एकीकरण उदाहरण प्रदान कर रहे हैं:

यदि आप पहले से ही उस लिंक पर गए हैं जो आप देख रहे हैं कि मैं सिर्फ गिट रीडमे से कोड कॉपी और पेस्ट करता हूं। यदि नहीं, तो कुछ और अंतर्दृष्टि और कोड उदाहरण प्राप्त करने के लिए वहां जाएं।


200
2018-05-21 15:52



भारी मदद मैंने एक दिन में एक और परियोजना से ज़क्सिंग आयात करने की कोशिश की थी और कहीं भी नहीं मिल रहा था। तब मुझे यह लिंक मिला और BAM हॊ गया। बस इस लिंक से उपरोक्त कोड उदाहरण का पालन करें: github.com/zxing/zxing/wiki/Scanning-Via-Intent। - Jack BeNimble
कोड वर्क्स !! मेरे पास एक मुद्दा है, मुझे स्कैनर पोर्ट्रेट चाहिए और स्कैनिंग स्क्रीन के लिए कस्टम लेआउट जोड़ने की ज़रूरत है क्या कोई मुझे बता सकता है कि कैसे हासिल किया जाए ?? - Harsh Trivedi
अभिविन्यास बदलने के लिए, कैप्चर एक्टिविटी को विस्तारित करने वाली एक नई गतिविधि बनाएं, और अपने AndroidManifest.xml में अभिविन्यास निर्दिष्ट करें। - ChaturaM
Fragment में ContinuousCapture का उपयोग करके अपना ऐप चलाने का प्रयास करते समय: त्रुटि: कार्य के लिए निष्पादन विफल: 'ऐप: transformClassesWithDexForDebug'। > com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: प्रक्रिया 'कमांड' सी: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.8.0 _60 \ bin \ java.exe '' शून्य-शून्य निकास मान 2 के साथ समाप्त हुआ - Konstantin Konopko
@Janpan; हाँ यह करता है! - Langusten Gustel


buttion.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                new com.google.zxing.integration.android.IntentIntegrator(Fragment.this).initiateScan();
            }
        });

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if(result != null) {
            if(result.getContents() == null) {
                Log.d("MainActivity", "Cancelled scan");
                Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
            } else {
                Log.d("MainActivity", "Scanned");
                Toast.makeText(this, "Scanned: " + result.getContents(), Toast.LENGTH_LONG).show();
            }
        } else {
            // This is important, otherwise the result will not be passed to the fragment
            super.onActivityResult(requestCode, resultCode, data);
        }
    }



dependencies {
    compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
    compile 'com.google.zxing:core:3.2.1'
    compile 'com.android.support:appcompat-v7:23.1.0'
}

4
2018-05-04 06:11





कोई भी एक ही समस्या का सामना कर रहा है, सरल चरणों का पालन करें:

परियोजना आयात करें android डाउनलोड से zxing-master विकल्प का उपयोग कर ज़िप फ़ाइल Import project (Eclipse ADT, Gradle, etc.) और अपने ऐप स्तर में कोड की dollowing 2 लाइनों को जोड़ें build.gradle फ़ाइल और आप दौड़ने के लिए तैयार हैं।

इतना आसान, याह ...

dependencies {
        // https://mvnrepository.com/artifact/com.google.zxing/core
        compile group: 'com.google.zxing', name: 'core', version: '3.2.1'
        // https://mvnrepository.com/artifact/com.google.zxing/android-core
        compile group: 'com.google.zxing', name: 'android-core', version: '3.2.0'

    }

आप हमेशा नवीनतम संस्करण पा सकते हैं core तथा android core नीचे दिए गए लिंक से:

https://mvnrepository.com/artifact/com.google.zxing/core/3.2.1 https://mvnrepository.com/artifact/com.google.zxing/android-core/3.2.0


2
2017-09-19 17:26



पेरेफक्ट सरल जवाब :) कई आर एंड डी के बाद मुझे यह लिंक मिला, और ऐसा लगता है कि एक जादू हुआ है। - Ramkesh Yadav
अब नवीनतम संस्करण कोर और एंड्रॉइड कोर निर्भरता है {// mvnrepository.com/artifact/com.google.zxing/core         कार्यान्वयन समूह: 'com.google.zxing', नाम: 'कोर', संस्करण: '3.3.2' // mvnrepository.com/artifact/com.google.zxing/android-core         कार्यान्वयन समूह: 'com.google.zxing', नाम: 'एंड्रॉइड-कोर', संस्करण: '3.3.0'} - Ramkesh Yadav
मैं इसे पहले से बनाई गई परियोजना में विलय करना चाहता हूं, न कि नई परियोजना के रूप में आयात करना चाहता हूं, तो मैं इसे कैसे प्राप्त कर सकता हूं? तत्काल सहायता की आवश्यकता है :) - Ramkesh Yadav


यह ट्यूटोरियल मुझे एंड्रॉइड स्टूडियो में एकीकृत करने में मदद करता है: http://wahidgazzah.olympe.in/integrating-zxing-in-your-android-app-as-standalone-scanner/ अगर नीचे कोशिश करें इस

बस AndroidManifest.xml में जोड़ें

<activity
         android:name="com.google.zxing.client.android.CaptureActivity"
         android:configChanges="orientation|keyboardHidden"
         android:screenOrientation="landscape"
         android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
         android:windowSoftInputMode="stateAlwaysHidden" >
         <intent-filter>
             <action android:name="com.google.zxing.client.android.SCAN" />
             <category android:name="android.intent.category.DEFAULT" />
         </intent-filter>
     </activity>

उममीद है कि इससे मदद मिलेगी!।


0
2017-11-12 19:40



दोनों लिंक 404 हैं - prgmrDev