在使用模拟器运行我的应用程序时,我得到了一个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!
panorama是图书馆项目的名称。
答案 0 :(得分:1)
如果您在安装应用程序时依赖性正确,则应在控制台日志中看到以下内容
[2011-04-19 16:41:10 - TicTacToe]安装TicTacToe.apk ......
[2011-04-19 16:41:12 - TicTacToe]成功!
但是既然你提到找不到panorama.apk!我尝试使用tic-tac-toe sameple库复制这种行为..
这就是我所做的,
为eclipse添加了TicTacToe库,还为eclipse添加了TicTacToe应用程序。
右键单击Library项目,转到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]成功!
答案 1 :(得分:-1)
你有没有在你的Manifest中添加这个类?
<activity android:name="ActivityTable"></activity>
答案 2 :(得分:-1)
我认为你应该使用
Intent myScreen = new Intent();
myScreen.setClassName(YourCurrentScreen.this,
fullpackagename.yourclassName.class.getName());
startActivityForResult(myScreen, 0);
这肯定有用
答案 3 :(得分:-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>
这应该有帮助..