java JUnit测试引发ClassNotFoundException
我最近遇到了一个tool for 安卓 hotswapping。它有一个教程可以从eclipse(Luna)http://www.instareloader.com/enabling-instareloader-in-the-eclipse-ide/开始使用
该教程所说的是:
- 右键单击主项目,然后单击新建测试项目
- 将他们的库jar添加到junit测试中李>
这是我主要项目的xml:
<uses-sdk
安卓:minSdkVersion="11"
安卓:targetSdkVersion="17" />
<application
安卓:allowBackup="true"
安卓:icon="@drawable/ic_launcher"
安卓:label="@string/app_name"
安卓:theme="@style/AppTheme" >
<activity
安卓:name=".MainActivity"
安卓:label="@string/app_name" >
<intent-filter>
<action 安卓:name="安卓.intent.action.MAIN" />
<category 安卓:name="安卓.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
这是我的测试项目的xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
package="com.example.layoutreloadmyown.test"
安卓:versionCode="1"
安卓:versionName="1.0"
安卓:sharedUserId="com.test">
<uses-sdk 安卓:minSdkVersion="11" />
<uses-permission 安卓:name="安卓.permission.INTERNET"/>
<uses-permission 安卓:name="安卓.permission.ACCESS_NETWORK_STATE"/>
<uses-permission 安卓:name="安卓.permission.WRITE_EXTERNAL_STORAGE"/>
<instrumentation
安卓:name="安卓.test.InstrumentationTestRunner"
安卓:targetPackage="com.example.layoutreloadmyown" />
<application
安卓:icon="@drawable/ic_launcher"
安卓:label="@string/app_name" >
<uses-library 安卓:name="安卓.test.runner" />
<meta-data
安卓:name="instareloader.ip"
安卓:value="192.168.56.1" />
<meta-data
安卓:name="instareloader.port"
安卓:value="18080" />
<meta-data
安卓:name="instareloader.file.logger"
安卓:value="true" />
<activity
安卓:name="com.example.layoutreloadmyown.MainActivity"
安卓:label="@string/app_name" >
<intent-filter>
<action 安卓:name="安卓.intent.action.MAIN" />
<category 安卓:name="安卓.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我照上面说的做了,但我得到了一个classnotfoundException:
08-16 12:29:51.995:E/AndroidRuntime(1745):致命异常:main 08-16 12:29:51.995:E/AndroidRuntime(1745):java。lang.RuntimeException:无法实例化活动组件信息{com.example.layoutreloadmyown.test/com.example.layoutreloadmyown.MainActivity}:java。lang.ClassNotFoundException:com。实例LayoutEloAdmown。主要活动 08-16 12:29:51.995:E/AndroidRuntime(1745):在安卓上。应用程序。活动线程。performLaunchActivity(ActivityThread.java:1983) 08-16 12:29:51.995:E/AndroidRuntime(1745):在安卓上。应用程序。活动线程。handleLaunchActivity(ActivityThread.java:2084) 08-16 12:29:51.995:E/AndroidRuntime(1745):在安卓上。应用程序。活动线程。access$600(ActivityThread.java:130) 08-16 12:29:51.995:E/AndroidRuntime(1745):在安卓上。应用程序。ActivityThread$H.handleMessage(ActivityThread.java:1195) 08-16 12:29:51.995:E/AndroidRuntime(1745):在安卓上。操作系统。汉德勒。dispatchMessage(Handler.java:99) 08-16 12:29:51.995:E/AndroidRuntime(1745):在安卓上。操作系统。活套。loop(Looper.java:137) 08-16 12:29:51.995:E/AndroidRuntime(1745):在安卓上。应用程序。活动线程。main(ActivityThread.java:4745) 08-16 12:29:51.995:E/AndroidRuntime(1745):在爪哇。朗,反思一下。方法invokenactive(本机方法) 08-16 12:29:51.995:E/AndroidRuntime(1745):在爪哇。朗,反思一下。方法调用(Method.java:511) 08-16 12:29:51.995:E/AndroidRuntime(1745):在com。安卓内部的操作系统。ZygoteInit$MethodandArgscaler。run(ZygoteInit.java:786) 08-16 12:29:51.995:E/AndroidRuntime(1745):在com。安卓内部的操作系统。合子体。main(ZygoteInit.java:553) 8-16 12:29:51.995:E/AndroidRuntime(1745):在达尔维克。系统本土艺术。主(本机方法) 08-16 12:29:51.995:E/AndroidRuntime(1745):由java引起。lang.ClassNotFoundException:com。实例LayoutEloAdmown。主要活动 8-16 12:29:51.995:E/AndroidRuntime(1745):在达尔维克。系统BaseDexClassLoader。findClass(BaseDexClassLoader.java:61) 08-16 12:29:51.995:E/AndroidRuntime(1745):在爪哇。lang.ClassLoader。loadClass(ClassLoader.java:501) 08-16 12:29:51.995:E/AndroidRuntime(1745):在爪哇。lang.ClassLoader。loadClass(ClassLoader.java:461) 08-16 12:29:51.995:E/AndroidRuntime(1745):在安卓上。应用程序。仪器。newActivity(Instrumentation.java:1053) 08-16 12:29:51.995:E/AndroidRuntime(1745):在安卓上。应用程序。活动线程。performLaunchActivity(ActivityThread.java:1974)
# 1 楼答案
您尚未在测试项目中集成主应用程序
右键单击测试项目->;房地产->;Java构建路径->;选择项目。集成您将要进行单元测试的项目