【问题标题】:Why Android doesn't find my Activity?为什么 Android 找不到我的 Activity?
【发布时间】:2013-06-13 18:44:16
【问题描述】:

我正在开发一个 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,这看起来很奇怪,我的所有活动都运行良好,但是这个特定的活动给了我这个错误。以下是我从 ListView 开始活动的方法:

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

【问题讨论】:

  • 您是否将 adt 更新到 rev 22?
  • 是的,我正在通过检查更新菜单使用最新的 ADT
  • 你在项目中引用过actionbar sherlock库吗?

标签: java android class exception


【解决方案1】:

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

【讨论】:

  • 抱歉输入错误,这是我清单中的 LogicAnalizerActivity
【解决方案2】:

如果您已将 adt 更新到 rev 22,请尝试以下操作

右键单击您的项目转到属性。 Java 构建路径。选择订单导出选项卡。确保选择了 Android 私有库。如果您引用了库项目。对库项目也这样做。清洁和建造。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 2010-10-25
    • 2016-12-15
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多