Eclipse Android项目在运行时期间引发类未找到错误

时间:2014-04-19 01:07:45

标签: java android eclipse android-intent zxing

我试图通过意图将ZXing合并到我自己的Android应用程序中,并且遇到了困难。我可以很好地编译我的代码,但是当它在按钮单击后尝试调用以下内容时,它会在IntentIntegrator()构造函数上死掉:

public void ScanCheck(View view){

try{
IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
integrator.initiateScan();
}catch(Exception e){

return;
}        

}

上面的代码是逐字的,MainActivity是我的类的名称。 我通常使用Visual Studio IDE在C#或C ++中编程,因此我的问题完全可能出现在我的java代码或我的eclipse项目设置中。

我正在使用Eclipse Kepler Service Release 2

手机正在运行Android 2.2.2

android-integration-3.0.0.jar文件已作为外部JAR添加到项目Java构建路径中。

android-integration-3.0.0文件已导入项目的/ lib文件夹下。

我也通过以下代码行导入zxing包

import com.google.zxing.integration.android.*;

错误消息让我相信我错过了Eclipse有效运行所需的东西,但我没有想法。

我看过: Class not found when using zxing

How to create for IntentIntegrator in Android with zXing

android zxing intentintegrator

以及其他一些通用的ZXING帖子,试图解决这个问题。

我从错误点开始包含下面的logcat转储。

04-18 17:34:46.301: E/AndroidRuntime(8074): FATAL EXCEPTION: main
04-18 17:34:46.301: E/AndroidRuntime(8074): java.lang.IllegalStateException: Could not execute method of the activity
04-18 17:34:46.301: E/AndroidRuntime(8074):     at android.view.View$1.onClick(View.java:2072)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at android.view.View.performClick(View.java:2408)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at android.view.View$PerformClick.run(View.java:8816)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at android.os.Handler.handleCallback(Handler.java:587)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at android.os.Looper.loop(Looper.java:123)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at android.app.ActivityThread.main(ActivityThread.java:4627)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at java.lang.reflect.Method.invokeNative(Native Method)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at java.lang.reflect.Method.invoke(Method.java:521)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at dalvik.system.NativeStart.main(Native Method)
04-18 17:34:46.301: E/AndroidRuntime(8074): Caused by: java.lang.reflect.InvocationTargetException
04-18 17:34:46.301: E/AndroidRuntime(8074):     at tcom.example.test.MainActivity.ScanCheck(MainActivity.java:76)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at java.lang.reflect.Method.invokeNative(Native Method)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at java.lang.reflect.Method.invoke(Method.java:521)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at android.view.View$1.onClick(View.java:2067)
04-18 17:34:46.301: E/AndroidRuntime(8074):     ... 11 more
04-18 17:34:46.301: E/AndroidRuntime(8074): Caused by: java.lang.NoClassDefFoundError: com.google.zxing.integration.android.IntentIntegrator
04-18 17:34:46.301: E/AndroidRuntime(8074):     ... 15 more
04-18 17:34:46.301: E/AndroidRuntime(8074): Caused by: java.lang.ClassNotFoundException: com.google.zxing.integration.android.IntentIntegrator in loader dalvik.system.PathClassLoader[/data/app/tcom.example.test-2.apk]
04-18 17:34:46.301: E/AndroidRuntime(8074):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
04-18 17:34:46.301: E/AndroidRuntime(8074):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
04-18 17:34:46.301: E/AndroidRuntime(8074):     ... 15 more

编辑:

这是按钮的xml

<Button
android:layout_width="wrap_content"     
android:layout_height="wrap_content"
android:text="@string/button_send" 
android:onClick="ScanCheck"/>

再次运行我发现上次错过了以下错误:

04-19 10:47:57.805:E / dalvikvm(2664):找不到类'com.google.zxing.integration.android.IntentIntegrator',从方法tcom.example.test.MainActivity.ScanCheck <引用/ p>

再次将jar添加到java构建路径和lib文件夹中(以及导入在lib所在的lib下创建了一系列子文件夹)

我还注意到Integrator类调用了一些需要蜂窝或更高级别的fragement方法。我的目标是Android 2.2.2,但是在java / android上经验不足以不知道是否存在问题,因为事情是从JAR文件中提取的。我怀疑这是一个问题。我希望有一个简单的解决办法。

1 个答案:

答案 0 :(得分:1)

事实证明,问题在于我将库添加到Eclipse的方式。我右键单击/ libs文件夹,然后将文件导入到项目中。在导入页面上,您选择要导入的文件类型,然后单击&#34;存档&#34;这似乎对#AR; Java ARchive&#34;文件。 这是错误的我最终让它工作的方式是:

将.jar文件放入文件系统端的workspace / project / libs文件夹

在Eclipse中打开项目

右键单击/ libs

选择导入

选择&#34;文件系统&#34;

选择/ libs文件夹

选择jar文件