Zxing导致Android应用程序强制关闭

问题描述:

只要发生扫描的活动发​​生,android应用程序就会关闭。它在一个点上工作,突然不再工作了。 Core.jar位于lib文件夹中。Zxing导致Android应用程序强制关闭

logcat的:

11-08 18:13:16.490: E/AndroidRuntime(1667): FATAL EXCEPTION: main 
11-08 18:13:16.490: E/AndroidRuntime(1667): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.picky.pickyeater/libcom.google.zxing.client.android.CaptureActivity}: java.lang.ClassNotFoundException: libcom.google.zxing.client.android.CaptureActivity in loader dalvik.system.PathClassLoader[/data/app/com.picky.pickyeater-1.apk] 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at android.os.Looper.loop(Looper.java:123) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at java.lang.reflect.Method.invoke(Method.java:521) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at dalvik.system.NativeStart.main(Native Method) 
11-08 18:13:16.490: E/AndroidRuntime(1667): Caused by: java.lang.ClassNotFoundException: libcom.google.zxing.client.android.CaptureActivity in loader dalvik.system.PathClassLoader[/data/app/com.picky.pickyeater-1.apk] 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
11-08 18:13:16.490: E/AndroidRuntime(1667):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 

OnCreate中():

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
     intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); 
     startActivityForResult(intent, 0); 
    } 

的AndroidManifest.xml摘录:

<activity 
      android:configChanges="orientation|keyboardHidden" 
      android:name="com.google.zxing.client.android.CaptureActivity" 
      android:screenOrientation="landscape" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
      android:windowSoftInputMode="stateAlwaysHidden" > 
      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 

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

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

的.classpath:

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
     <classpathentry kind="src" path="src"/> 
     <classpathentry kind="src" path="gen"/> 
     <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> 
     <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> 
     <classpathentry kind="lib" path="lib/gson-1.7.1.jar"/> 
     <classpathentry kind="lib" path="lib/jsoup-1.6.1.jar"/> 
     <classpathentry kind="lib" path="lib/core.jar"/> 
     <classpathentry kind="output" path="bin/classes"/> 
</classpath> 
+0

重新命名的包? – Ian

+0

这不是一个包 - 它是构建路径上的一个jar – Kristin

+0

看起来像jar没有出现在构建路径中。您需要将core.jar添加到项目中(右键单击您的项目 - >属性 - > Java Build Path - >添加外部JARS ... - >选择core.jar - >确定)。 – Ian

我知道根据肖恩上面的说法,这在技术上是不正确的,但是这是通过将其作为库链接来解决的。

在斑马线:
1.项目
2.单击右键单击属性
3.单击的Android在左侧菜单
4.检查是图书馆

在我的应用程序中:
1.右键点击项目
2.单击属性
3.单击的Android在左侧菜单
4.单击添加
5.选择斑马线项目

+1

做*不*使用android /代码库中的代码。这不是一个图书馆,并不会这样工作。我们强烈建议您不要复制和粘贴整个应用程序。特别是我们认为以这种方式使用它会违反商标。不要鼓励这个,即使它不是你最终做的。 –

+0

这是一个班级项目。我们从来没有去过任何地方。我真诚道歉。 – Kristin

zxing在这里没有做任何事情。您复制并粘贴了我们的代码,并未将其包含在您的JAR中。你只是看到一个ClassNotFoundException;你甚至没有达到你使用我们的代码的地步。

FWIW我们强烈反对我们的开源代码的这种级别的复制和粘贴。请编写自己的应用程序来启动并重用您需要的部分。从错误中看来,这不是你要去的。

更强烈的是,您不应该使用我们的软件包名称。

+0

等待我困惑。我真的不想要复制任何东西。我们只是遵循包括罐子的指示。你如何建议我们正确访问扫描? 我们的软件包名称是com.picky.pickyeater – Kristin

+0

布局中的某些内容引用了'libcom.google.zxing.client.android.CaptureActivity',这是问题的根源。我不确定你正在遵循的是什么指令,但是你不需要包含任何东西,除了'core.jar'外没有任何东西来自'android /' –

+0

我们的项目中没有任何东西来自android /。我们如何参考我们的Manifest中的部分是不正确的?或者在OnCreate()中引用SCAN? – Kristin

你应该尝试清理所有斑马线库项目,所有其他引用的库和您的应用程序项目。这帮了我这个错误信息。

以我的经验,我遇到了同样的问题。但是如果你使用的是eclipse,请确保你有你自己的项目中包含的库(CaptureActivity)REALLY

要重新检查:右键单击您的项目 - >属性 - > Android的部分 - >看看是否你的图书馆是GREEN。如果不是,那意味着你没有正确的包含库。

要解决这个问题,当试图创建文库的现有库,你可以检查它复制到你的磁盘

希望帮助