5

使用模拟器运行我的应用程序时,我遇到了 noclassdeffound 异常:

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    Intent myIntent = new Intent(ActivityPano.this, ActivityTable.class);
    startActivity(myIntent);
}

ActivityTable 导致异常。

它是在一个 android-library 项目中定义的,我已将其包含在 java 构建路径以及 android 引用对话框中。eclipse中没有错误,但是在模拟器中启动时会崩溃。

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.mypackage"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:debuggable="false" android:description="@string/description">
        <activity android:name=".ActivityHPanorama"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


        <activity android:name="com.mypackage.ActivityTable"></activity>

    </application>


<uses-sdk android:minSdkVersion="3"></uses-sdk>
</manifest> 

这是来自 logcat 的错误:

04-18 11:32:07.767: ERROR/dalvikvm(483): Could not find class com.mypackage.ActivityTable', referenced from method com.mypackage.ActivityHPanorama.onCreate

让我有点怀疑的是控制台中的这一行(不是 logcat):

[2011-04-18 14:55:59 - panorama] Could not find panorama.apk!

全景是图书馆项目的名称。

4

4 回答 4

1

如果您在安装应用程序时依赖项是正确的,您应该在控制台日志中看到以下内容

[2011-04-19 16:41:10 - TicTacToe] 安装 TicTacToe.apk...

[2011-04-19 16:41:12 - TicTacToe] 成功!

但是既然你提到了找不到panorama.apk!我尝试使用井字游戏相同库复制这种行为。

这就是我所做的,

将井字游戏库添加到 eclipse,也将井字游戏应用程序添加到 eclipse。

右键单击库项目,转到 android 选项卡并删除 IsLibrary 检查

右键单击主应用程序项目,转到 android 选项卡删除依赖项

转到主应用程序项目的 java 构建路径,并将库项目添加为所需项目

编译很顺利,但是在安装应用程序时,它正在检查 library.apk 我猜你是否正在做任何类似的事情,这可能是问题所在。

[2011-04-19 16:42:16 - TicTacToe] 安装 TicTacToe.apk...

[2011-04-19 16:42:20 - TicTacToe] 成功![2011-04-19 16:42:20 - TicTacToe] 找到项目依赖项,安装:TicTacToeLib

[2011-04-19 16:42:20 - TicTacToeLib] 将 TicTacToeLib.apk 上传到设备 'SH0A5PL08769' [2011-04-19 16:42:20 - TicTacToeLib] 安装 TicTacToeLib.apk ... [2011-04-19 16:42:24 - TicTacToeLib] 成功!

于 2011-04-18T12:25:38.420 回答
-1

I think you should use

 Intent myScreen = new Intent();
    myScreen.setClassName(YourCurrentScreen.this,
fullpackagename.yourclassName.class.getName());
    startActivityForResult(myScreen, 0);

This would definitely work

于 2011-04-18T10:25:01.280 回答
-1

你有没有在你的清单中添加这个类?

<activity android:name="ActivityTable"></activity>

于 2011-04-18T09:44:08.053 回答
-1

问题是您还没有为“ActivityTable”定义任何意图过滤器......

<activity android:name=".ActivityTable" 
                  android:label="ActivityTable">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

这应该有帮助..

于 2011-04-18T10:36:34.923 回答