0

Android アプリに QR コード リーダーを実装しようとしています。次の手順に従いました。

  1. zxing.zip 、 /android 、および /core からサンプル ライブラリ プロジェクトを作成しました。

  2. 作成したライブラリをアプリに追加

私のコードは以下の通りです:

public class main extends Activity {
/** Called when the activity is first created. */

Button scanButton;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    scanButton = (Button) findViewById(R.id.button1);

    scanButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // 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) {
    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
        }
    }
}

スキャナーが起動せず、次のエラーが表示されます。

05-08 14:12:03.313: ERROR/AndroidRuntime(718): Caused by: java.lang.ClassNotFoundException: com.google.zxing.client.android.CaptureActivity in loader dalvik.system.PathClassLoader[/data/app/com.scanner.demo-2.apk]

マニフェスト:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.scanner.demo" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".main" 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:name="com.google.zxing.client.android.CaptureActivity"
        android:screenOrientation="landscape" 
        android:configChanges="orientation|keyboardHidden"
        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>

4

2 に答える 2

2

これはかなり混乱しています。で統合したいようですIntent。これは前半が行うことです。しかし、あなたは私たちのマニフェストをコピーしたようです。なんで?それを取り除いてください。これは不要であり、エラーの原因となり、そのままにしておくとアプリに干渉します。

必要なのはこれだけです: https://code.google.com/p/zxing/wiki/ScanningViaIntent

于 2013-05-08T08:50:04.133 に答える
2

なぜこれをマニフェストに入れるのですか?

<activity 
    android:name="com.google.zxing.client.android.CaptureActivity"
...
</activity>

Zxing から内部アクティビティまたはアプリを呼び出していますか?

于 2013-05-08T08:42:03.283 に答える