gpt4 book ai didi

java - Eclipse Android 项目在运行时抛出类未找到错误

转载 作者:行者123 更新时间:2023-12-01 13:07:27 24 4
gpt4 key购买 nike

我正在尝试通过 Intent 将 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 引用

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

我还注意到 Integrator 类调用一些需要 honeycomb 或更高级别的 Fragment 方法。我的目标是 Android 2.2.2,但我在 java/android 方面缺乏经验,不知道这是否会出现问题,因为事情是从 JAR 文件中提取的。我怀疑这是一个问题。我希望有一个简单的解决方案。

最佳答案

事实证明问题出在我将库添加到 Eclipse 的方式上。我右键单击/libs 文件夹,并将文件导入到项目中。在选择要导入的文件类型的导入页面上,我单击了“存档”,这似乎对于“Java ARchive”文件有意义。 这是错误的我最终让它发挥作用的方法是:

将 .jar 文件放入文件系统端的工作区/项目/libs 文件夹中

在 Eclipse 中打开项目

右键单击/libs

选择导入

选择“文件系统”

选择/libs 文件夹

选择jar文件

关于java - Eclipse Android 项目在运行时抛出类未找到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23164627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com