Android_Android Studio下執行單元測試

  今天在Android Studio下學習怎麼執行單元測試,現總結如下:
1. https://coderwall.com/p/ybds4w
    http://blog.futurice.com/android_unit_testing_in_ides_and_ci_environments
2,出現問題如下:
Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 3 more
原因爲調用的junit  android-studio\plugins\junit\lib\junit-rt.jar 下沒有junit/textui/ResultPrinter 這個class文件,怎麼解決呢????
3. com.google.inject的maven配置 (http://mvnrepository.com/artifact/com.google.inject/guice/1.0)
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>1.0</version>
</dependency>
4.android-4.0.1.2.jar Maven配置(http://mvnrepository.com/artifact/com.google.android/android/4.0.1.2)
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>4.0.1.2</version>
</dependency>
5.用gradle編譯項目時出錯
Could not create plugin of type 'AppPlugin'
解決方法:
classpath 'com.android.tools.build:gradle:0.7.0' 改爲 classpath 'com.android.tools.build:gradle:0.7.3'
6.用gradle 同步工程出現錯誤如下:
Unable to load class 'org.gradle.api.artifacts.result.ResolvedComponentResult'
解決方法?????
  classpath 'com.android.tools.build:gradle:0.7.3'       
7. gradle-plugin and the gradle version說明
There is a relation between gradle-plugin and the gradle version. For example
com.android.tools.build:gradle:0.6.+  -> gradle 1.8
com.android.tools.build:gradle:0.7.+  -> gradle 1.9
com.android.tools.build:gradle:0.8.+  -> gradle 1.9/1.10
com.android.tools.build:gradle:0.9.+  -> gradle 1.10/1.11
You can find gradle version used in your project in the file gradle/wrapper/gradle-wrapper.properties
Also there is a relation between gradle-plugin and the IDE version. For example:
Android Studio 0.3.x -> gradle-plugin 0.6
Android Studio 0.4.x -> gradle-plugin 0.7
Android Studio 0.4.3+ -> gradle-plugin 0.8
Android Studio 0.5.x  -> gradle-plugin 0.9
For updated news you can check this link: http://tools.android.com/recent

8. 錯誤問題如下:
 !!! JUnit version 3.8 or later expected:
    java.lang.RuntimeException: Stub!
      at junit.runner.BaseTestRunner.<init>(BaseTestRunner.java:5)
      at junit.textui.TestRunner.<init>(TestRunner.java:54)
      at junit.textui.TestRunner.<init>(TestRunner.java:48)
      at junit.textui.TestRunner.<init>(TestRunner.java:41)
解決方法:(https://github.com/robolectric/deckard-gradle)
For Intellij, go to Project Structure -> Modules -> deckard-gradle pane. In the Dependencies tab, move the Module SDK dependency (i.e. Android API 19 Platform) to be the last item in the list.
For Android Studio, dependency ordering is currently not modifiable via any GUI. Therefore, you must modify the project iml file directly as such and reload the project:
                <orderEntry type="library" exported="" scope="TEST" name="wagon-provider-api-1.0-beta-6" level="project" />
                <orderEntry type="library" exported="" scope="TEST" name="xercesMinimal-1.9.6.2" level="project" />
                <orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />                       
<---make sure this is the last orderEntry
            </component>
        </module>
9.下載android sdk和platform API參考地址:
http://xtbbbbdx.blog.51cto.com/3506227/1009209
android-3.0_r02-linux.zip的下載鏈接
http://dl.google.com/android/repository/android-3.0_r02-linux.zip

10:  NoClassDefFoundError: com/intellij/rt/execution/junit/JUnitStarter: com/intellij/rt/execution/junit/JUnitStarter

解決方法:???

11. No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.

解決方法:

using android-support-v7-appcompat.jar lib inside libs folder

(compile'com.android.support:appcompat-v7:19.0.+')



發佈了147 篇原創文章 · 獲贊 20 · 訪問量 83萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章