首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QrCode扫描仪“无法解析符号CaptureActivity”

QrCode扫描仪“无法解析符号CaptureActivity”
EN

Stack Overflow用户
提问于 2014-09-24 09:15:03
回答 3查看 6K关注 0票数 1

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

我正在使用AndroidStudio8.1。

我从maven存储库( core.jar )下载zxing core.jar文件

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

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.CAMERA" />
<activity
android:name="com.google.zxing.client.android.CaptureActivity"
android:screenOrientation="landscape" >
</activity>

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

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

我创建了以下活动:

代码语言:javascript
运行
复制
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’)

但是我得到了以下错误:

"com.google.zxing.client.android.CaptureActivity“:没有找到类java.lang.ClassNotFoundException,我该怎么解决这个问题?

EN

回答 3

Stack Overflow用户

发布于 2014-09-24 19:03:04

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

您的代码令人困惑,因为您似乎希望通过Intent进行集成,但是,您不需要在android甚至core中使用任何代码。相反,您应该遵循https://github.com/zxing/zxing/wiki/Scanning-Via-Intent的指示

票数 1
EN

Stack Overflow用户

发布于 2014-09-24 09:23:46

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

代码语言:javascript
运行
复制
<intent-filter>
     <action android:name="com.google.zxing.client.android.SCAN" />
     <category android:name="android.intent.category.DEFAULT" />
     </intent-filter>
票数 0
EN

Stack Overflow用户

发布于 2014-09-24 09:25:16

一次引用此链接http://wahidgazzah.olympe.in/integrating-zxing-in-your-android-app-as-standalone-scanner/

将此添加到AndroidManifest.xml中

代码语言:javascript
运行
复制
<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>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26013034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档