0

최근 일식에서 인텔리로 전환 했으므로 지금까지 정말 좋은 경험이었습니다. 그러나 나는 벽에 머리를 대고있는 이상한 문제에 부 닥쳤다. 내 응용 프로그램에서 ViewPagerIndicator, ActionBarSherlock, RoboSherlock 및 RoboGuice뿐만 아니라 다른 일반적인 프레임 워크를 사용하려고합니다. VPI를 추가 할 때까지 모든 것이 잘 작동합니다.종속성이 많은 프로젝트에 VPI를 추가하면 3.0 이전 장치에 오류가 발생합니다.

기본적으로 내 프로젝트에 ViewPagerIndicator 종속성을 추가하면 3.0 이전의 장치 (3.0 이상에서는 정상적으로 실행)에 대한 응용 프로그램이 중단됩니다.

오류는 다소 혼란 스럽습니다. 왜냐하면 VPI apklib가있을 때 ABS 호환 테마가 선택되지 않았기 때문입니다 (내 매니페스트에서 ABS 호환 테마를 사용한다는 점에 유의하십시오). 나는 내가 아래 참조 추적에서 더 깊이 볼 때

>09-18 10:33:15.986: ERROR/COM.IRIE.TASTEBUD/ObserverMethodListener.java:34(509): main java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:507) 
     at roboguice.event.eventListener.ObserverMethodListener.onEvent(ObserverMethodListener.java:32) 
     at roboguice.event.EventManager.fire(EventManager.java:130) 
     at com.github.rtyley.android.sherlock.roboguice.activity.RoboSherlockActivity.onCreate(RoboSherlockActivity.java:63) 
     at com.irie.tastebud.view.activity.MainActivity.onCreate(MainActivity.java:38) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 

(나는 셜록 테마를 사용하고 있더라도) :

Caused by: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative. 
    at com.actionbarsherlock.internal.ActionBarSherlockCompat.generateLayout(ActionBarSherlockCompat.java:1007) 
    at com.actionbarsherlock.internal.ActionBarSherlockCompat.installDecor(ActionBarSherlockCompat.java:919) 
    at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:853) 
    at com.actionbarsherlock.app.SherlockActivity.setContentView(SherlockActivity.java:218) 
    at roboguice.inject.ContentViewListener.optionallySetContentView(ContentViewListener.java:21) 
    ... 19 more** 

참조 전체 예외 스택 추적 및 활동/매니페스트/pom.xml 코드 @https://gist.github.com/3743646.

다시 한번 - 이것은 VPI 프로젝트를 maven 종속성으로 추가 할 때 3.0 이전 장치에서만 발생합니다. VPI를 제거하면 앱이 2.2 이상의 기기에서 제대로 실행됩니다.

내 Pom.xml은 2.2 이상에서 잘 작동하는 Android 부트 스트랩 응용 프로그램과 거의 동일합니다.

내 생각 엔 내 종언에 종속성 구성 문제가 있다고 생각합니다. 나는 Maven과 intellij와 꽤 친환경적이어서 문제 해결에 어려움이 많았다.

다른 사람이이 동작을 보았는지 또는 신참 실수를하는 경우 확실하지 않습니다. 어떤 도움을 주셔서 감사합니다 - 내가 문제를 해결하면, 나는이 질문을 답으로 업데이트 할 것이다.

사전에 모두에게 감사 드리며이 게시물과 함께 stackoverflow 에티켓을 어기면 미안합니다.

편집 : 찾을 가능성 관련 문제 http://youtrack.jetbrains.com/issue/IDEA-90719

답변

1

훨씬 빨리 작동하는이 문제에 대한 다른 해결책을 찾았습니다. 안드로이드 패싯 구성에서 리소스 처리를 에서 변경 "만들기 전에"프로세스 리소스 '메이븐 작업을 실행하기 전에에서 까지 "IDE로 리소스 컴파일". 첨부 파일의 스크린 샷을 참조하십시오.모든 안드로이드 버전

Facet configuration

+0

사실이 문제가 수정되어 훨씬 빠릅니다. 업데이트 주셔서 감사합니다! – Eggman87

1

그래서 대신 기본 안드로이드 빌드 구성을 사용하여 @, 나는 안드로이드 받는다는 플러그인을 사용하고 MVN 안드로이드를했다 : 배포 의존성 및 안드로이드 : 실행하고, 문제는 지나간.

intellij에 대한 기본 android 빌드 구성을 사용하기 전에 먼저 내 의존성을 관리하기 위해 android maven 플러그인을 사용하고 있다고 생각하면 올바른 방식으로 보이지 않습니다.

희망이 있으면 도움이됩니다.

P. intellij-idea rocks!

+1

에이 모두가 잘 작동 변화와 빠른 후 나도이 해결 방법을 사용하는 tryed했지만, 불행하게도이 솔루션은 tooooooo 느립니다. u는 안드로이드 빌드 apk를 빌드 할 때 많은 것들을 캐시하고 상당히 빠르게 빌드합니다. 그러나 이것을 사용하기 위해 메이븐 빌드를 사용하면 항상 모든 소스를 다시 빌드하고 다시 패키징하므로 ​​빌드가 매우 느려집니다. 이러한 문제로 인해 VPI lib를 내 프로젝트에서 사용하지 않아야했습니다. –

관련 문제