java - 为什么 Android 找不到我的 Activity?

标签 java android class exception

我正在开发一个 Android 应用程序,我在日志中得到了这个:

06-13 15:35:11.140: E/AndroidRuntime(21290): FATAL EXCEPTION: main
06-13 15:35:11.140: E/AndroidRuntime(21290): java.lang.NoClassDefFoundError: com.protocolanalyzer.andres.LogicAnalizerActivity
06-13 15:35:11.140: E/AndroidRuntime(21290):    at com.multiwork.andres.MainMenu.<clinit>(MainMenu.java:37)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at java.lang.Class.newInstanceImpl(Native Method)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at java.lang.Class.newInstance(Class.java:1319)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2220)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread.access$600(ActivityThread.java:156)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1250)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.os.Looper.loop(Looper.java:137)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at android.app.ActivityThread.main(ActivityThread.java:5238)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at java.lang.reflect.Method.invokeNative(Native Method)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at java.lang.reflect.Method.invoke(Method.java:511)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
06-13 15:35:11.140: E/AndroidRuntime(21290):    at dalvik.system.NativeStart.main(Native Method)

当我尝试运行 Android 时,您可以看到它没有找到我的类 com.protocolanalyzer.andres.LogicAnalizerActivity,这看起来很奇怪,我所有的 Activity 都运行良好,但这个特定的 Activity 给我这个错误。以下是我如何从我的 ListView 启动 Activity :

private static final Class<?>[] className = {LCView.class, FrecView.class,
        LogicAnalizerActivity.class, BrazoRobot.class, PruebaParser.class};

setListAdapter(new ArrayAdapter<String>(MainMenu.this, android.R.layout.simple_list_item_1, MenuNames));

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        if(DEBUG) Log.i("MainMenu", "onListItemClick() - Position: " + position);

        Intent mIntent = new Intent(MainMenu.this, className[position]);
        startActivity(mIntent);
    }

这是我的 LogicAnalyzerActivity,你可以看到包和名称是正确的:

package com.protocolanalyzer.andres;

public class LogicAnalizerActivity extends SherlockFragmentActivity implements OnActionBarClickListener, OnNewBluetoothDataReceived{

和 Manifest.xml:

<activity
            android:screenOrientation="landscape"
            android:name="com.protocolanalyzer.andres.LogicAnalizerActivity"
            android:label="@string/app_name" >
        </activity>

发生了什么事?我试过:

  • 正在重新安装应用
  • 删除手机数据
  • 重新启动 Eclipse
  • 清洁项目
  • 在数组中使用 com.protocolanalyzer.andres.LogicAnalizerActivity.class 而不是 LogicAnalizerActivity.class

最佳答案

您的 AndroidManifest.xml 文件显示 android:name="com.protocolanalyzer.andres.LogicAnalizerPrefs",但您需要的类实际上是 android:name="com.protocolanalyzer. andres.LogicAnalizerActivity".

关于java - 为什么 Android 找不到我的 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17094698/

相关文章:

Java 错误捕获问题

PHP OOP 类设计

Android Studio/Gradle 找不到用于测试的 AppCompat 资源

java - 将数据从 BroadCastRecevier 传递到 Activity

android - Kotlin:如何使用 subSequence 过滤字符串列表而不过滤掉长度小于 subSequence 要求的字符串?

php - 在类中使用数组遍历

java - 我的 Google Code Jam Round 1B 2013 "Osmos"代码有什么问题?

java - 如何在java中格式化字符串 "012df3g4h5j6 78"=> "01 23 45 67 8"

Java 泛型与函数类型

java - 使用 JButton 的 actionListener 向 JTable 添加行