【问题标题】:QrCode Scanner "cannot resolve symbol CaptureActivity "二维码扫描仪“无法解析符号 CaptureActivity”
【发布时间】:2014-09-24 09:15:03
【问题描述】:

我想将 QRCode 添加到我的 android 应用程序中。

我使用的是 Android Studio 8.1。

我从 maven 存储库 (http://repo1.maven.org/maven2/com/google/zxing/core/3.1.0/) 下载 zxing core.jar 文件

我在清单 xml 文件中添加了以下几行:

<uses-permission android:name="android.permission.CAMERA" />
<activity
android:name="com.google.zxing.client.android.CaptureActivity"
android:screenOrientation="landscape" >
</activity>

然后我将 jar 文件添加到“lib”文件夹中,并在 gradle 构建文件中添加为库:

编译文件('libs/core-3.1.0.jar')

我创建了以下活动:

public class QrCodeReader extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_qrcode);
        HandleClick hc = new HandleClick();
        findViewById(R.id.butQR).setOnClickListener(hc);
        findViewById(R.id.butProd).setOnClickListener(hc);
        findViewById(R.id.butOther).setOnClickListener(hc);
    }
    private class HandleClick implements View.OnClickListener {
        public void onClick(View arg0) {
           Intent intent = new Intent(getApplicationContext(),CaptureActivity.class);
            intent.setAction("com.google.zxing.client.android.SCAN");
            intent.putExtra("SAVE_HISTORY", false);
            startActivityForResult(intent, 0);


        }
    }
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == 0) {
            TextView tvStatus=(TextView)findViewById(R.id.tvStatus);
            TextView tvResult=(TextView)findViewById(R.id.tvResult);
            if (resultCode == RESULT_OK) {
                tvStatus.setText(intent.getStringExtra("SCAN_RESULT_FORMAT"));
                tvResult.setText(intent.getStringExtra("SCAN_RESULT"));
            } else if (resultCode == RESULT_CANCELED) {
                tvStatus.setText("Press a button to start a scan.");
                tvResult.setText("Scan cancelled.");
            }
        }
    }

}

现在我收到“无法解析符号 CaptureActivity”错误,我该如何解决?

问候

编辑:

我添加了以下文件并修复了此错误

编译文件('libs/android-core-3.1.0.jar') 编译文件('libs/android-integration-3.1.0.jar')

但我收到以下错误:

java.lang.ClassNotFoundException:找不到类“com.google.zxing.client.android.CaptureActivity”我该如何解决这个问题?

【问题讨论】:

  • 你会得到这个错误的原因只有三个: 这个类真的不存在。如果您使用官方示例中的代码并获取此代码,请确保您拥有最新版本的库您尚未将 jar 添加到您的构建路径中。要解决此问题,请右键单击 Eclipse 中的 jar,然后执行 Build Path ► Add to Build Path。您的 jar 不在 /libs 文件夹中。当您将 jar 添加到构建路径时会发生这种情况,但较新版本的 ADT 需要它位于 /libs 中。将其放在那里并重新添加到构建路径中。

标签: android android-studio zxing


【解决方案1】:

您不打算在您的应用程序中使用CaptureActivity。由于这个原因,它不在core 中,这就是您的应用找不到它的原因。

您的代码令人困惑,因为您似乎想通过Intent 集成,但是,您不需要android 甚至core 中的任何代码。相反,您应该按照https://github.com/zxing/zxing/wiki/Scanning-Via-Intent 的说明进行操作

【讨论】:

  • 如果我使用以下代码,它可以工作,但我收到此消息:安装条形码扫描仪?我想在我的应用程序中使用 qrcode 扫描仪,我不想安装任何应用程序。我可以这样做吗?谢谢 IntentIntegrator integrator = new IntentIntegrator(QrCodeReader.this);积分器.initiateScan();
  • 那你不想使用Intents。您需要编写自己的扫描应用程序;请不要克隆我们的。但是,如果您愿意,您应该重用 core/ 并重用 android/ 源的部分内容。只是不要复制和粘贴。我们已经有很多问题了。
【解决方案2】:

您会收到此错误的原因只有三个:

这个类真的不存在。如果您正在使用官方示例中的代码并获得此代码,请确保您拥有最新版本的库

您尚未将 jar 添加到构建路径中。要解决此问题,请右键单击 Eclipse 中的 jar,然后执行 Build Path ► Add to Build Path。

您的 jar 不在 /libs 文件夹中。当您将 jar 添加到构建路径时会发生这种情况,但较新版本的 ADT 需要它位于 /libs 中。将其放在那里并重新添加到构建路径中。

【讨论】:

    【解决方案3】:

    在捕获活动中添加意图过滤器。

    <intent-filter>
         <action android:name="com.google.zxing.client.android.SCAN" />
         <category android:name="android.intent.category.DEFAULT" />
         </intent-filter>
    

    【讨论】:

    • 我添加了,但我得到同样的错误,构建失败:错误:(27、63)错误:找不到符号类 CaptureActivity
    【解决方案4】:

    一旦参考此链接 http://wahidgazzah.olympe.in/integrating-zxing-in-your-android-app-as-standalone-scanner/

    在 AndroidManifest.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>
    

    【讨论】:

    • 我添加了,但我得到同样的错误,构建失败:错误:(27、63)错误:找不到符号类 CaptureActivity
    • java.lang.ClassNotFoundException: 找不到类“com.google.zxing.client.android.CaptureActivity”我该如何解决这个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多