0

Biggu バーコード ライブラリを使用しています。

パッケージ化されたライブラリは、デモとサンプル アプリケーションを使用してすべてがリストされています。

しかし、クラス定義が見つかりませんというエラーが表示されます

     java.lang.NoClassDefFoundError: com.biggu.scannerdemo.ScannerActivity

ただし、クラスはパッケージ内にあり、マニフェスト ファイルにはすべてのアクティビティが一覧表示されます。ビルド パスのパスにbiggu_scanner-1.1.0.jarファイルがあります。

package com.biggu.scannerdemo;

import com.biggu.barcodescanner.client.android.Intents;

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

public class Demo extends Activity {

private static final int SCANNER_REQUEST_CODE = 0;

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

    Button button = (Button)findViewById(R.id.btn);
    button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

            Intent intent = new Intent(v.getContext(), com.biggu.scannerdemo.ScannerActivity.class);
            intent.putExtra(Intents.Preferences.ENABLE_BEEP, true);
            intent.putExtra(Intents.Preferences.ENABLE_VIBRATE, true);

            ((Activity)v.getContext()).startActivityForResult(intent, SCANNER_REQUEST_CODE);
        }
    });
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (resultCode == Activity.RESULT_OK && requestCode == SCANNER_REQUEST_CODE) {

        Bundle extras = data.getExtras();
        String result = extras.getString("SCAN_RESULT");
        TextView textView = (TextView)findViewById(R.id.txt);
        textView.setText(result);
    }
}}

ScannerActivity には以下のコードがあります

package com.biggu.scannerdemo;

import com.biggu.barcodescanner.client.android.CaptureActivity;

public class ScannerActivity extends CaptureActivity {

@Override
public int get_R_id_preview_view() {

    return R.id.preview_view;
}

@Override
public int get_R_id_viewfinder_view() {

    return R.id.viewfinder_view;
}

@Override
public int get_R_layout_scanner() {

    return R.layout.scanner;
}

@Override
public int get_R_raw_beep() {

    return R.raw.beep;
}
}

Android マニフェスト ファイル

<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.biggu.scannerdemo"
  android:versionCode="1"
  android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Demo"
              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=".ScannerActivity"
        android:label="Scanner Activity" android:screenOrientation="landscape"
        android:configChanges="orientation|keyboardHidden" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    </activity>

</application>
<uses-sdk android:minSdkVersion="4" />

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />

正しく設定するためにすべてを試しましたコードの何が問題なのか誰か教えてください。お返事をお待ちしております。ありがとうございます。

4

2 に答える 2

2

APKをビルドするときに、ライブラリがエクスポートされていることを確認する必要があります。

プロジェクトのプロパティ>Javaビルドパス>順序とエクスポート=>ライブラリを確認します

于 2012-11-15T15:53:01.570 に答える
0

プロジェクト設定でライブラリを追加する必要があります。

于 2012-11-15T15:48:23.297 に答える