অ্যান্ড্রয়েড স্টুডিওতে জেডএক্সিং সংহত করুন


94

আমি আমার সমস্ত পদক্ষেপগুলি ব্যাখ্যা করতে শুরু করব এবং শেষ পর্যন্ত সমস্যাটি কী।

  1. জেডএক্সিং -২.২ ডাউনলোড করুন https://code.google.com/p/zxing/downloads/list
  2. জ্যাক্সিং -২.২ তে সমস্ত কিছু বের করুন।
  3. অ্যাপাচি অ্যান্টি http://www.youtube.com/watch?v=XJmndRfb1TU ডাউনলোড এবং ইনস্টল করুন
  4. উইন্ডোজ কমান্ডলাইন (রান-> সিএমডি) ব্যবহার করে উত্তোলিত ডিরেক্টরিতে নেভিগেট করুন
  5. কমান্ডলাইন উইন্ডো - টাইপ করুন 'ant -f কোর / বিল্ড.এক্সএমএল' টিপুন এবং এপাচে এটি যাদুতে কাজ করতে দিন

এই মুহুর্তে জেডএক্সিং লাইব্রেরিটি সরাসরি আমার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটিতে সংহত করার মতো

তবে উওপস, "বিল্ডফায়াল: কোর \ বিল্ড.এক্সএমএল বিদ্যমান নেই! বিল্ড ব্যর্থ হয়েছে ঠিক আছে 6 .. জেডএক্সিং আমদানি - নিখোঁজ কোর / বিল্ড.এক্সএমএল

এখন হ্যাঁ, আমার কোর.জার আছে।

  1. অ্যান্ড্রয়েড স্টুডিও খুলুন, ফাইল -> আমদানি প্রকল্প -> নির্বাচন করুন / অ্যান্ড্রয়েড / ইন / জক্সিং ২২.২ / -> বিদ্যমান উত্স থেকে প্রকল্প তৈরি করুন -> প্রকল্পের নাম: অ্যান্ডয়েড -> এর জন্য উত্স ফাইল ... সমস্ত পরীক্ষিত পরবর্তী -> লাইব্রেরি (পোষাক কিছুই করবেন না) পরবর্তী -> মডিউলগুলি (অ্যান্ড্রয়েড চেক করা হয়েছে) পরবর্তী -> এসডিকে 1.7 পরবর্তী -> সমাপ্ত

প্রকল্প ওপেন সহ -> বিল্ড -> প্রকল্পটি পুনর্নির্মাণ করুন

100 ত্রুটি 19 সতর্কতা

ফাইল -> প্রকল্পের কাঠামো -> গ্রন্থাগারগুলি -> যুক্ত -> জাভা -> আমি আগে তৈরি করা কোর.জার নির্বাচন করুন এবং ঠিক আছে -> লাইব্রেরির 'কোর' নির্বাচিত মডিউলগুলিতে যুক্ত করা হবে। (Android) ঠিক আছে -> এবং প্রকল্প কাঠামো সংলাপে ঠিক আছে।

বিল্ড -> পুনর্নির্মাণ প্রকল্প

15 ত্রুটি 20 সতর্কতা

সমস্ত ত্রুটি ত্রুটি: ধ্রুবক প্রকাশ প্রয়োজন এবং আমি অ্যান্ড্রয়েডে জেডএক্সিং প্রকল্পের ক্ষেত্রে স্যুইচ করার ক্ষেত্রে ত্রুটি দেখছি আমি যদি এলিজের জন্য সমস্ত স্যুইচ পরিবর্তন করি।

0 টি ত্রুটি 20 সতর্কতা

ঠিক আছে, এখন চালিয়ে যান:

ফাইল -> নতুন প্রকল্প -> zxing_demo পরবর্তী -> পরবর্তী -> ফাঁকা কার্যকলাপ পরবর্তী -> সমাপ্ত

নতুন প্রকল্পে -> ফাইল -> আমদানি মডিউল -> অনুসন্ধান করুন এবং নির্বাচন করুন / অ্যান্ড্রয়েড / ওকে -> বিদ্যমান উত্স থেকে মডিউল তৈরি করুন পরবর্তী -> পরবর্তী -> পরবর্তী -> পরবর্তী -> সমাপ্ত

এখন আমি এক্সপ্লোরার / অ্যান্ড্রয়েড / / জেগিং_ডেমোপ্রজেক্ট / এবং বাহ্যিক গ্রন্থাগারগুলিতে দেখতে পাচ্ছি

এখন আমি আমার কোড টিউ স্ক্যান কিউআর পরিবর্তন করি

AndroidManLive.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>

মেইনএ্যাকটিভিটি.জভা

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
        }
    }
}

}

এখন পরীক্ষা করুন, চালান -> ডিবাগ করুন

এবং ক্র্যাশ।

লগক্যাট

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

আমি এই লাইনে AndroidManLive.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

আমি মনে করি আমি অ্যাপ্লিকেশন এবং উদ্দেশ্যগুলি ব্যবহার করব, তবে এখন আমি এই কাজটি করতে চাই, যদি এখন কেউ ঘটে তবে আমাকে বলুন।


এই প্রশ্নটিতে অনেকগুলি মতামত রয়েছে ঠিক যদি এটি কাউকে সহায়তা করে তবেই [এখানে আমার অতি অনুরূপ সমস্যা] [1] [1]: স্ট্যাকওভারফ্লো
ড্যানিয়েল উইলসন

উত্তর:


240

আমি জেডএক্সিংকে একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনে সংহত করেছিলাম এবং পুরোপুরি ইনপুটটির জন্য কোনও ভাল উত্স ছিল না, আমি আপনাকে আমার জন্য কী কাজ করেছে তার একটি ইঙ্গিত দেব - কারণ এটি খুব সহজ ছিল

একটি আসল হ্যান্ডস গিট রিপোজিটরি রয়েছে যা zxingএআরআর্ক সংরক্ষণাগার হিসাবে অ্যান্ড্রয়েড গ্রন্থাগার প্রকল্প সরবরাহ করে ।

আপনাকে যা করতে হবে তা হ'ল এটি আপনার বিল্ড.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();

তাদের একটি নমুনা-প্রকল্প রয়েছে এবং বেশ কয়েকটি সংহতকরণ উদাহরণ সরবরাহ করছে:

আপনি যদি ইতিমধ্যে সেই লিঙ্কটি পরিদর্শন করেছেন যা আপনি দেখতে যাচ্ছেন যে আমি গিট README থেকে কোডটি অনুলিপি করে কপি করেছি। যদি তা না হয় তবে আরও কিছু অন্তর্দৃষ্টি এবং কোড উদাহরণ পেতে সেখানে যান।


4
বিশাল সাহায্য। অন্য প্রকল্প থেকে জেড্সিং আমদানির চেষ্টা করার জন্য আমি একদিন ধরে কাটিয়েছি এবং কোথাও পাচ্ছি না। তারপরে আমি এই লিঙ্কটি পেয়েছি এবং বিএএম এটি সম্পন্ন হয়েছে। এই লিঙ্কটি থেকে উপরের মত কোডের উদাহরণটি অনুসরণ করুন: github.com/zxing/zxing/wiki/Scanning-Via-Intant
জ্যাক BeNimble

4
কোড ওয়ার্কস !! আমার একটি সমস্যা আছে, আমি স্ক্যানার প্রতিকৃতি চাই এবং স্ক্রিন স্ক্রিনের জন্য কাস্টম লেআউট যুক্ত করা দরকার যে কেউ কীভাবে অর্জন করবেন আমাকে বলতে পারেন ??
হর্ষ ত্রিবেদী

4
ওরিয়েন্টেশন পরিবর্তন করতে ক্যাপচারঅ্যাক্টিভিটি প্রসারিত একটি নতুন ক্রিয়াকলাপ তৈরি করুন এবং আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলকে ওরিয়েন্টেশন নির্দিষ্ট করুন।
চতুরাম

যখন টুকরো টুকরোতে ক্রমাগত ক্যাপচার ব্যবহার করে আমার অ্যাপ্লিকেশনটি চালানোর চেষ্টা করা হচ্ছে: ত্রুটি: কার্যের জন্য কার্যকর করা ব্যর্থ হয়েছে ': অ্যাপ: ট্রান্সফর্মক্লাস উইথডেক্সফরডব্যাগ'। > com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.intern.ExecException: প্রক্রিয়া 'কমান্ড' সি: \ প্রোগ্রাম ফাইলসমূহ জাভা \ jdk1.8.0 _60 \ বিন \ java.exe '' শূন্য-বহির্গমন প্রস্থান 2 দিয়ে শেষ হয়েছে
কনস্টান্টিন কনোপকো

4
@ জনপান; হ্যাঁ এটা করে!
ল্যাঙ্গুস্টেন গুস্টেল

7
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'
}

7

যে কেউ একই সমস্যার মুখোমুখি হচ্ছে, সহজ পদক্ষেপগুলি অনুসরণ করুন:

বিকল্পটি ব্যবহার করে androidডাউনলোড করা zxing-masterজিপ ফাইল থেকে প্রকল্পটি আমদানি করুন Import project (Eclipse ADT, Gradle, etc.)এবং আপনার অ্যাপ্লিকেশন স্তরের build.gradleফাইলে 2 টি লাইন কোড ফাঁস করে যুক্ত করুন এবং আপনি চালনার জন্য প্রস্তুত।

এত সহজ, ইয়া ...

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

আপডেট (29.05.2019)

পরিবর্তে এই নির্ভরতা যুক্ত করুন:

dependencies {
    implementation 'com.google.zxing:core:3.4.0'
    implementation 'com.google.zxing:android-core:3.3.0'
}

পেরফেক্টের সহজ উত্তর :) অনেকগুলি গবেষণা ও ডি-এর পরে আমি এই লিঙ্কটি খুঁজে পেয়েছি এবং দেখে মনে হচ্ছে যেন কোনও যাদু হয়েছে।
রামকেশ যাদব

4
এখন সাম্প্রতিক সংস্করণ কোর এবং অ্যান্ড্রয়েড কোর নির্ভরতা {// হয় 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'}
রামকেশ যাদব

আমি ইতিমধ্যে তৈরি প্রকল্পে এটি একীভূত করতে চাই নতুন প্রকল্প হিসাবে আমদানি করতে চাই না, তবে আমি কীভাবে এটি অর্জন করতে পারি? জরুরি সহায়তা প্রয়োজন :)
রামকেশ যাদব

ধন্যবাদ! আমাকেও প্রকল্পটি আমদানি করতে হয়েছিল এবং নির্ভরতা যুক্ত করতে হয়েছিল।
শীতলমাইন্ড

0

সংস্করণ 4.x থেকে, কেবলমাত্র অ্যান্ড্রয়েড এসডিকে 24+ ডিফল্টরূপে সমর্থিত, এবং অ্যান্ড্রয়েডেক্স প্রয়োজনীয়।

আপনার বিল্ড.gradle ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:

repositories {
    jcenter()
}

dependencies {
    implementation 'com.journeyapps:zxing-android-embedded:4.1.0'
    implementation 'androidx.appcompat:appcompat:1.0.2'
}

android {
    buildToolsVersion '28.0.3' // Older versions may give compile errors
}

পুরানো এসডিকে সংস্করণ

অ্যান্ড্রয়েড এসডিকে সংস্করণ <২৪ এর জন্য, আপনি জেক্সিংকে মূল ডাউনগ্রেড করতে পারেন: অ্যান্ড্রয়েড ১৪+ সমর্থনের জন্য মূলটি ৩.৩.০ বা তার আগের দিকে:

repositories {
    jcenter()
}

dependencies {
    implementation('com.journeyapps:zxing-android-embedded:4.1.0') { transitive = false }
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'com.google.zxing:core:3.3.0'
}

android {
    buildToolsVersion '28.0.3'
}

আপনার আপনার অ্যান্ড্রয়েড ম্যানিফেস্টেও এটির প্রয়োজন হবে:

<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />

উত্স: https://github.com/journeyapps/zxing-android-e এম্বেড করা


-1

এই টিউটোরিয়ালটি অ্যান্ড্রয়েড স্টুডিওতে সংহত করতে আমাকে সহায়তা করে: http://wahidgazzah.olympe.in/integrating-zxing-in-your-android-app-as-standalone-scanner/ নীচে চেষ্টা করুন যদি এই চেষ্টা করুন

কেবলমাত্র AndroidManLive.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>

এই সাহায্য আশা করি !.


এটি কোনও
উপকারে আসেনি

@ প্রদীপগেটস: পুরানো, আপনি কি কিছু কোড পরীক্ষা করতে পারেন?
হিরিগোশি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.