代号一个 3.3 代码扫描 API



我已经更新了我的项目,以使用最新的代号api 3.3。在我的安卓应用程序中,我使用扫描码来扫描二维码。它一直工作得很好。现在,当我尝试新版本时,我的应用程序立即崩溃。经过一番挖掘,我发现是扫描码 api 导入导致了它。禁用与扫描码 API 相关的所有代码后,我的应用程序再次运行。

我的旧应用程序构建基于以前的代号,我相信它是 3.1,运行良好。

我已经按照建议测试了新的外部 api,并且我已经测试了内置的 api,结果相同。

在安卓 5.0 上进行测试我已经在有和没有java支持的情况下构建了我的应用程序8。在模拟器中,我没有废话。

从谷歌克拉赫报告我有以下内容

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArrayMap;
    at com.google.android.gms.measurement.internal.i.<clinit>(Unknown Source)
    at com.google.android.gms.measurement.internal.ac.h(Unknown Source)
    at com.google.android.gms.measurement.internal.y.<init>(Unknown Source)
    at com.google.android.gms.measurement.internal.ac.a(Unknown Source)
    at com.google.android.gms.measurement.internal.y.a(Unknown Source)
    at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1716)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1685)
    at android.app.ActivityThread.installProvider(ActivityThread.java:5559)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5154)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5094)
    at android.app.ActivityThread.access$1600(ActivityThread.java:177)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:5942)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.util.ArrayMap" on path: DexPathList[[zip file "/data/app/se.epu.mobiprint-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    ... 20 more
    Suppressed: java.lang.ClassNotFoundException: android.support.v4.util.ArrayMap
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
        ... 21 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

我相信它与扫描码 API 中的以下内容有关

软件包com.codename1.ext.codescan;

import android.app.Activity;
import android.content.Intent;
import com.codename1.impl.android.AndroidNativeUtil;
import com.codename1.impl.android.CodenameOneActivity;
import com.codename1.impl.android.IntentIntegrator;
import com.codename1.impl.android.IntentResultListener;
import com.codename1.ui.Display;
import java.util.Arrays;
import java.util.Collection;

import java.util.Arrays;

import java.util.Collection;

有一些关于这个问题的线程(缺少类android.support.v4.util.ArrayMap(,但我相信这是一个CN1问题?

ADT 更新后的 ClassNotFoundException

Eclipse 给出错误,最近更新后缺少 R.java 文件

我希望这是CN1可以解决的问题?

Codescan 最近已从 Codename one core 中弃用。您的问题可能是由于这个原因造成的。

如博客文章中所述,要将 Codescan 与 Codenameone 3.3 及更高版本一起使用,您必须下载 cn1lib cn1-codescan.cn1lib 并将其放在您的项目 lib 文件夹中。

我鼓励您始终关注博客以了解最近的更改和新功能。

您可以在此博客中阅读有关弃用的更多信息。

谢谢Shai

当使用构建提示android.gradle=false时它有效

最新更新