有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JUnit测试引发ClassNotFoundException

我最近遇到了一个tool for 安卓 hotswapping。它有一个教程可以从eclipse(Luna)http://www.instareloader.com/enabling-instareloader-in-the-eclipse-ide/开始使用

该教程所说的是:

  1. 右键单击主项目,然后单击新建测试项目
  2. 将他们的库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) 个答案

  1. # 1 楼答案

    您尚未在测试项目中集成主应用程序

    右键单击测试项目->;房地产->;Java构建路径->;选择项目。集成您将要进行单元测试的项目