요즘 robolectric를 TA로 사용하여 Android 용 데모 앱을 작성하고 있습니다. 나는 프로젝트를 실행할 수 있지만 내가 테스트를 추가 할 때,이 같은 오류를 보여줍니다Maven + Robolectric, 리소스를 찾을 수 없습니까?
이error message="java.lang.RuntimeException: no such directory /Users/majie/Downloads/android-sdk-macosx/platforms/android-9/data/res/values" type="java.lang.RuntimeException">java.lang.RuntimeException: java.lang.RuntimeException: no such directory /Users/majie/Downloads/android-sdk-macosx/platforms/android-9/data/res/values
at com.xtremelabs.robolectric.res.ResourceLoader.init(ResourceLoader.java:93)
at com.xtremelabs.robolectric.res.ResourceLoader.inflateView(ResourceLoader.java:261)
at com.xtremelabs.robolectric.shadows.ShadowLayoutInflater.inflate(ShadowLayoutInflater.java:43)
at com.xtremelabs.robolectric.shadows.ShadowLayoutInflater.inflate(ShadowLayoutInflater.java:48)
at android.view.LayoutInflater.inflate(LayoutInflater.java)
at com.xtremelabs.robolectric.shadows.ShadowActivity.setContentView(ShadowActivity.java:73)
at android.app.Activity.setContentView(Activity.java)
at com.cisco.jabberim.ui.WelcomeActivity.onCreate(WelcomeActivity.java:21)
at Test.FTE.WelcomeActivityTest.setUp(WelcomeActivityTest.java:28)
테스트 파일은 다음과 같다 :
:@RunWith(RobolectricTestRunner.class)
public class WelcomeActivityTest {
private WelcomeActivity mActivity;
private TextView text;
@Before
public void setUp(){
mActivity = new WelcomeActivity();
mActivity.onCreate(null);
text = (TextView) mActivity.findViewById(R.id.welcome);
}
@Test
public void textIsNotNull(){
String str = text.getText().toString();
assertNotNull(str);
}
}
pom.xml 파일을 다음과 같이이다
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven- v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>im</groupId>
<artifactId>Im</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>apk</packaging>
<name>IM demo</name>
<dependencies>
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>3.0_r2</version>
<scope>provided</scope>
</dependency>
<!-- Make sure this is below the android dependencies -->
<dependency>
<groupId>com.pivotallabs</groupId>
<artifactId>robolectric</artifactId>
<version>1.0-RC1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<!-- See http://code.google.com/p/maven-android-plugin/ -->
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<sdk>
<!-- platform or api level (api level 8 = platform 2.2)-->
<platform>11</platform>
</sdk>
</configuration>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
정말 어떻게 해결해야할지 모르겠다. 이상한 경로가 "/ Users/majie/Downloads/android-sdk-macosx/platforms/android-9/data/res/values"인 이유를 모르겠습니다. 나는 그것을 어디에 놓을 것인지, 어떻게 바르게 할 것인지 모른다.
Android SDK 관리자에서 Android 9 SDK를 다운로드 했습니까? – yorkw