如何导入 ZXING 到 android studio?

How to import ZXING to android studio?

我用android工作室 我想在我的应用程序中导入'ZXING',我找到了很多文章并找到了以下站点

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

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

我还是不知道怎么做


4/14 我尝试了 Lennon URL 提供的 "zxing-android-minimal" 并导入 'gradle-wrapper.jar'

但是当我写的时候 新的 IntentIntegrator (this) .initiateScan (); 仍然出现"Can not resolve symbol '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 select添加为库 但是出错的时候,他好像没有添加


4/10

终于不再出现"Can not resolve symbol '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/"
    }
}

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

repositories {
    mavenCentral()
}

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

这是核心条码 encoding/decoding 库,您可以使用它来构建自定义条码 scanner/generator 应用程序。

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

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

如果您决定使用 ZXing Android 嵌入式项目,这就像在 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;
    }
}

在你的根目录中-build.gradle:

repositories {
   mavenCentral()

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

您应用中的一个-build.gradle:

dependencies {
    // Supports Android 4.0.3 and later (API level 15)
    compile 'com.journeyapps:zxing-android-embedded:2.3.0@aar'

    // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.
    // If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
    compile 'com.journeyapps:zxing-android-legacy:2.3.0@aar'

    // Convenience library to launch the scanning Activities.
    // It automatically picks the best scanning library from the above two, depending on the
    // Android version and what is available.
    compile 'com.journeyapps:zxing-android-integration:2.3.0@aar'

    // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
    // This mostly affects encoding, but you should test if you plan to support these versions.
    // Older versions e.g. 2.2 may also work if you need support for older Android versions.
    compile 'com.google.zxing:core:3.2.0'
}

可以在此处找到更多信息:https://github.com/journeyapps/zxing-android-embedded

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

它对我来说效果很好,而且更容易实施。

编辑:

在您的项目中打开此文件:

/gradle/wrapper/gradle-wrapper.属性

编辑 distributionUrl 行并进行设置:

distributionUrl=http://services.gradle.org/distributions/gradle-1.8-all.zip 重建您的项目。

更新:您现在可能想使用 gradle-2.1-all.zip。

新编辑:

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

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

来自你 MyApplicationbuild.gradle,因为那个 gradle 是针对整个项目的,你最好在每个模块中使用它。

之后,打开app模块的build.gradle,添加如下代码:

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

    }

}

完成 Lennon 解释的所有步骤后,我通过转到 Android Studio 的终端并输入 gradlew assemble 解决了 "Can not resolve symbol 'IntentIntegrator'" 的问题。花了一段时间,但现在我可以使用在 aar 上声明的所有 类。

希望对您有所帮助。

我也遇到了同样的问题,我按照如下所示的简单步骤解决了这个问题:

使用选项 Import project (Eclipse ADT, Gradle, etc.) 从下载的 zxing-master zip 文件中导入项目 android 并在您的应用级别 build.gradle 文件中添加以下两行代码,然后您准备好运行.

很简单,嗯...

dependencies {
        // https://mvnrepository.com/artifact/com.google.zxing/core
        compile group: 'com.google.zxing', name: 'core', version: '3.2.1'
        // https://mvnrepository.com/artifact/com.google.zxing/android-core
        compile group: 'com.google.zxing', name: 'android-core', version: '3.2.0'

    }

您始终可以从以下链接找到最新版本 coreandroid core

https://mvnrepository.com/artifact/com.google.zxing/core/3.2.1 https://mvnrepository.com/artifact/com.google.zxing/android-core/3.2.0