Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Robotium和Sherlock-NoClassDefFoundError_Android_Exception_Testing_Android Actionbar_Robotium - Fatal编程技术网

Android Robotium和Sherlock-NoClassDefFoundError

Android Robotium和Sherlock-NoClassDefFoundError,android,exception,testing,android-actionbar,robotium,Android,Exception,Testing,Android Actionbar,Robotium,我的项目中的测试有问题。我已正确配置了依赖项,但无法使用Robotium运行测试。当我的活动只扩展了活动-一切都很好,当我添加“扩展SherlockActivity”时,我得到了 java.lang.RuntimeException: Exception during suite construction at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(Te

我的项目中的测试有问题。我已正确配置了依赖项,但无法使用Robotium运行测试。当我的活动只扩展了活动-一切都很好,当我添加“扩展SherlockActivity”时,我得到了

java.lang.RuntimeException: Exception during suite construction
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(TestSuiteBuilder.java:238)

Caused by: java.lang.NoClassDefFoundError: com.calculator.Main (example project from Robotium www). 
我已经尝试在Intellij和Eclipse中运行测试。两个IDE给出了相同的结果

编辑:这是我的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.calculator.test"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">

    <uses-library android:name="android.test.runner" />
    </application>
    <uses-sdk android:minSdkVersion="8" />
    <instrumentation android:targetPackage="com.calculator" android:name="android.test.InstrumentationTestRunner" />
</manifest> 


看起来您用正确的依赖项编译了类,但在运行时没有指定它们。由于IntelliJ和Eclipse都应该为类似运行的编译使用相同的配置,问题是:您是如何运行测试的?

看起来您使用正确的依赖项编译了类,但在运行时没有指定它们。由于IntelliJ和Eclipse都应该为类似运行的编译使用相同的配置,问题是:您是如何运行测试的?

您使用的任何编辑器都没有问题

以下是从adb外壳启动任何活动的通用语法:

adb shell am start -a android.intent.action.MAIN -n com.package.name/com.package.name.ActivityName
所以,当您从robotium调用任何活动时,它必须“扩展活动”

“扩展SherlockActivity”不适用于robotium,因为上面的语法仅要求活动名称。因此,如果您扩展任何其他内容,它将不起作用

注:

[1] 首先尝试用下面的语法打开您的活动

adb shell am start -a android.intent.action.MAIN -n com.calculator/com.calculator.Main
这里的“Main”是包“com.calculator”中的活动

[2] 如果这对你有用,那么它对robotium也会有用


我希望这个概念能对你有所帮助。谢谢。

您使用的任何编辑器都没有问题

以下是从adb外壳启动任何活动的通用语法:

adb shell am start -a android.intent.action.MAIN -n com.package.name/com.package.name.ActivityName
所以,当您从robotium调用任何活动时,它必须“扩展活动”

“扩展SherlockActivity”不适用于robotium,因为上面的语法仅要求活动名称。因此,如果您扩展任何其他内容,它将不起作用

注:

[1] 首先尝试用下面的语法打开您的活动

adb shell am start -a android.intent.action.MAIN -n com.calculator/com.calculator.Main
这里的“Main”是包“com.calculator”中的活动

[2] 如果这对你有用,那么它对robotium也会有用


我希望这个概念能对你有所帮助。谢谢。

在Intellij中,关于运行配置没有太多选项。我把它设置为以测试开始一节课。我在上面加了舱单。奇怪的是,“TestMain扩展活动”可以工作,但“TestMain扩展SherlockActivity”却不能工作。关于运行配置,没有太多选项。我把它设置为以测试开始一节课。我在上面加了舱单。奇怪的是,“TestMain扩展活动”可以运行,但“TestMain扩展SherlockActivity”却不能运行。我可以使用上面的代码运行我的应用程序,但我仍然不知道它如何帮助我。你能更详细地描述第[2]点吗?我如何在Eclipse/Intellij中使用它?当我想手动运行它时,它不起作用(与上面的错误相同-NoClassDefFoundError)。代码:adb shell am instrument-w com.calculator.test/android.test.InstrumentationTestRunner首先尝试从命令提示符执行“adb shell am start-a android.intent.action.MAIN-n com.calculator/com.calculator.MAIN”。如果它运行,那么就使用robotium。因为当你尝试用robotium代码启动任何活动时,首先会出现“adb shell am start-a android.intent.action.MAIN-n com.calculator/com.calculator.MAIN”这样的情况。我可以使用上面的代码运行我的应用程序,但我仍然不知道它对我有什么帮助。你能更详细地描述第[2]点吗?我如何在Eclipse/Intellij中使用它?当我想手动运行它时,它不起作用(与上面的错误相同-NoClassDefFoundError)。代码:adb shell am instrument-w com.calculator.test/android.test.InstrumentationTestRunner首先尝试从命令提示符执行“adb shell am start-a android.intent.action.MAIN-n com.calculator/com.calculator.MAIN”。如果它运行,那么就使用robotium。因为当您尝试使用robotium代码启动任何活动时,首先会出现“adb shell am start-a android.intent.action.MAIN-n com.calculator/com.calculator.MAIN”这样的情况。