如何将ZXING导入安卓工作室?

2022-09-03 18:07:43

我使用Android工作室,我想在我的应用程序中导入“ZXING”,我找到了很多文章并找到了以下网站

https://github.com/zxing/zxing/

我下载了ZIP并解压缩,并找到了一些教程但是它似乎没有太详细的细节,我需要导入什么?实现二维码扫描

我仍然不知道该怎么做


4/14 我尝试列侬网址提供“zxing-android-minimal”并导入“gradle-wrapper.jar”

但是当我写新的IntentIntegrator (this) .initiateScan ();仍然出现“无法解析符号'IntentIntegrator”消息

https://www.dropbox.com/s/2srga9iq75iqe4m/%E8%9E%A2%E5%B9%95%E6%88%AA%E5%9C%96%202015-04-10%2001.33.56.png?dl=0

我确实有一个正确的'.jar选择添加为库但是当发生错误时,他似乎没有被添加


4/10

终于不再出现“无法解析符号'IntentIntegrator'”这个代码,我错了什么?

我删除了新的IntentIntegrator (this) .initiateScan ();'应用程序正常运行

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    new IntentIntegrator(this).initiateScan();
}

我的'build.greadle'

    repositories {
    jcenter()
    maven {
        url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
    }
}

答案 1

您应该在 build.gradle 文件中定义 zxing 依赖项:

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.google.zxing:core:3.2.0'
}

这是核心条形码编码/解码库,可用于构建自定义条形码扫描仪/生成器应用程序。

如果您需要支持扫描条形码的简单情况,您可以使用ZXing Android Embedded项目嵌入ZXing Android Barcode Scanner应用程序。

这是ZXing Android Barcode Scanner应用程序的一个端口,作为Android库项目,用于嵌入其他Android应用程序中。

如果您决定使用ZXing Android Embedded项目,就像在build.gradle文件中定义依赖项一样简单:

repositories {
    mavenCentral()

    maven {
        url "http://dl.bintray.com/journeyapps/maven"
    }
}

dependencies {
    implementation 'com.journeyapps:zxing-android-embedded:2.3.0@aar'
    implementation 'com.journeyapps:zxing-android-legacy:2.3.0@aar'
    implementation 'com.journeyapps:zxing-android-integration:2.3.0@aar'
    implementation 'com.google.zxing:core:3.2.0'
}

使用默认选项启动意向:

new IntentIntegrator(this).initiateScan(); // `this` is the current Activity

并得到你的结果:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    switch (requestCode) {
    case IntentIntegrator.REQUEST_CODE:
        if (resultCode == Activity.RESULT_OK) {
            // Parsing bar code reader result
            IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
        }
        break;
    }
}

答案 2

当我使用zxing库开发我的应用程序时,我遇到了很多麻烦。所以看看这个zxing最小:https://github.com/Promptus/zxing-android-minimal/tree/master

它对我来说非常有效,并且更容易实现。

编辑:

在项目中打开此文件:

/gradle/wrapper/gradle-wrapper.properties

编辑 distributionUrl 行并设置它:

distributionUrl=http://services.gradle.org/distributions/gradle-1.8-all.zip Rebuild your project.

更新:您可能希望立即使用 gradle-2.1-all.zip。

新编辑:

首先,您必须删除文件。然后,您必须删除libs

mavenCentral()
    maven {
        url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
    }

从 你的 of ,因为该 gradle 适用于整个项目,最好在每个模块中使用它。build.gradleMyApplication

之后,打开模块的 并添加以下代码:build.gradleapp

repositories {
    mavenCentral()

    maven {
        url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'

    // Zxing libraries
    compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar'
    compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar'
    compile 'com.google.zxing:core:3.0.1'

}

最后,您需要从项目中删除,否则,编译时会出现错误。google.zxing.integration.android

更新:

若要解决后退按钮问题,可以执行以下代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == RESULT_OK) {

        String _code = data.getStringExtra("SCAN_RESULT");

        // do whatever you want

    }

}