Zxing을 사용하여 QR 코드 스캐너를 내 안드로이드 앱에 통합하려고합니다. 나는이 단계들을 따라왔다 :QR 코드 스캐너와 Zxing을 통합 할 때 오류가 발생했습니다.
나는 ZXing.zip 파일을 다운로드하고 압축을 풀었다.
ZXing 프로젝트를 Android 기존 프로젝트로 연 다음 android 폴더로 이동하여 android 폴더를 열고 core.jar 파일을 CaptureActivity라는 ZXing 프로젝트에 추가하십시오.
저는 'QRCodeSample'이라는 이름의 프로젝트에서 CaptureActivity 프로젝트를 라이브러리로 사용했습니다.
package com.charith.qrcodesample; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { Button b1; TextView scanResult; String contents; public static final int REQUEST_CODDE = 1; protected static final String QR_CODE_MODE = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1 = (Button) findViewById(R.id.bScan); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub 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) { scanResult = (TextView) findViewById(R.id.tvContent); if(requestCode == 0) { if(resultCode == RESULT_OK) { contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); scanResult.setText(contents); }else if(resultCode == RESULT_CANCELED){ scanResult.setText("Error"); } } } }
이 내의 AndroidManifest.xml 파일입니다
이 내 MainActivity.java 파일입니다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.charith.qrcodesample"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="10" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<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="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>
<activity
android:name="com.charith.qrcodesample.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>
</application>
</manifest>
그리고 내 main_activity.xml 파일입니다.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:id="@+id/bScan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="33dp"
android:text="Scan" />
<TextView
android:id="@+id/tvContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/bScan"
android:layout_below="@+id/bScan"
android:layout_marginTop="44dp"
android:text="" />
</RelativeLayout>
이클립스에서 에뮬레이터를 사용하여 내 응용 프로그램을 검사했습니다. 그런 다음 다음 오류가 발생했습니다.
The application has stopped unexpectedly. Please try again
누구든지 가능한 빨리이 문제를 명확히 할 수 있다면 매우 감사하겠습니다.
Eclipse의 Android 에뮬레이터는 카메라를 지원하지 않습니다. 카메라 지원이 부족하여 에뮬레이터가 작동하지 않을 수 있습니까? 나는이 오류를 코드 오류까지 백분되기 전에 작동하는 안드로이드 장치에서이 응용 프로그램을 테스트 할 것입니다. 대부분의 경우 Android 에뮬레이터/이클립스 관련 문제 일 가능성이 큽니다. –