1

机に頭をぶつけて、stackoverflow の関連記事を掘り下げた後、この質問を投稿するのは気が進まなかったのですが、問題を解決できませんでした。ここにいます。多くの開発者が試みたように、ZXingを Android アプリに統合しようとしていますが、一貫して同じエラーが発生しています: Unable to start activity ComponentInfo. core.jar を追加し、アクティビティとカメラのアクセス許可をマニフェストに追加しました。ここで見逃している非常に単純なことがあることを知っています。インテントを使用してスキャンしようとすると、次のエラーが発生します。私はすでに ZXing ライブラリを調べて、すべての switch ステートメントを if/else に変更しようとしました。また、ここで提案されているように、ZXing レイアウトにパッケージ名を追加しようとしました: Android ZXing の実装

ジャワ:

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainMenu extends Activity {

Button btn_scan

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

    btn_scan = (Button) findViewById(R.id.btn_scanbarcode);
    btn_scan.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

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

}

マニフェスト

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

LogCat:

11-30 10:54:04.713: E/AndroidRuntime(15452): FATAL EXCEPTION: main
11-30 10:54:04.713: E/AndroidRuntime(15452): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.testapp/com.google.zxing.client.android.CaptureActivity}: android.view.InflateException: Binary XML file line #27: Error inflating class com.android.testapp
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2240)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2275)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.app.ActivityThread.access$600(ActivityThread.java:139)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.os.Looper.loop(Looper.java:156)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.app.ActivityThread.main(ActivityThread.java:5060)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at java.lang.reflect.Method.invokeNative(Native Method)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at java.lang.reflect.Method.invoke(Method.java:511)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at dalvik.system.NativeStart.main(Native Method)
11-30 10:54:04.713: E/AndroidRuntime(15452): Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class com.android.testapp
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:278)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.app.Activity.setContentView(Activity.java:1897)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at com.google.zxing.client.android.CaptureActivity.onCreate(CaptureActivity.java:143)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.app.Activity.performCreate(Activity.java:4543)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2196)
11-30 10:54:04.713: E/AndroidRuntime(15452):    ... 11 more
11-30 10:54:04.713: E/AndroidRuntime(15452): Caused by: java.lang.ClassNotFoundException: com.android.testapp
11-30 10:54:04.713: E/AndroidRuntime(15452):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.view.LayoutInflater.createView(LayoutInflater.java:552)
11-30 10:54:04.713: E/AndroidRuntime(15452):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
11-30 10:54:04.713: E/AndroidRuntime(15452):    ... 21 more
4

2 に答える 2

1

ここにはいくつかの問題があります。その中には、アプリでアクティビティと名前空間を宣言しようとしていることが含まれます。これをしないでください。それはあなたにとってはうまくいかず、私たちのユーザーに問題を引き起こします.

あなたはこれをしたいようです: https://github.com/zxing/zxing/wiki/Scanning-Via-Intent

もしそうなら、あなたがここで作っているよりもずっと簡単です。

于 2012-11-30T19:00:01.207 に答える
1

zxing プロジェクトをライブラリとしてインポートし、不要なクラスを取り除きます。このプロセスは苦痛でしたが、うまくいきました。

于 2013-01-04T22:30:33.960 に答える