2013-04-09 2 views
0

다음 this tutorial IntelliJ IDEA의 Android 프로젝트에 Maven, ABS 및 AndroidAnnotations를 추가했습니다. 처음에 나는 DEX/cannot access android.support.v4.app.FragmentActivity 예외 고투, 다음과 같은 구성으로 문제를 해결할 것으로 보인다했습니다ABS + IntelliJ IDEA : 활동을 시작할 수 없습니다.

app deps

abs deps

을 지금 내가 java.lang.RuntimeException: Unable to start activity 오류를 받고 있어요.

매니페스트 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="ru.erarta.erarta" 
      android:versionCode="1" 
      android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <application android:label="@string/app_name" 
       android:theme="@style/Theme.Sherlock" 
       android:icon="@drawable/ic_launcher" 
       android:name=".Erarta"> 
     <activity android:name=".TabsFragmentActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
     <activity android:name=".DayActivity_" /> 
     <activity android:name=".CalendarActivity"/> 
     <activity android:name=".AboutActivity"/> 
     <activity android:name=".EventActivity"/> 
     <activity android:name=".PermanentExhibitionActivity"/> 
     <activity android:name=".MediaActivity"/> 
     <activity android:name=".MapActivity"/> 
     <activity android:name=".TypesActivity" android:label="Типы событий"/> 
     <!-- uses-library android:name="com.google.android.maps" /--> 
    </application> 
</manifest> 

주요 활동 선언 :

public class TabsFragmentActivity extends SherlockFragmentActivity 
     implements TabHost.OnTabChangeListener 

로그 캣 출력 : 여기 apktool로 APK를 디 컴파일 한

04-09 16:45:48.614: ERROR/AndroidRuntime(26562): FATAL EXCEPTION: main 
     java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.erarta.erarta/ru.erarta.erarta.TabsFragmentActivity}: java.lang.ClassCastException: ru.erarta.erarta.CalendarActivity 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1872) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893) 
     at android.app.ActivityThread.access$1500(ActivityThread.java:135) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:150) 
     at android.app.ActivityThread.main(ActivityThread.java:4385) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:507) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
     at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.ClassCastException: ru.erarta.erarta.CalendarActivity 
     at android.support.v4.app.Fragment.instantiate(Fragment.java:384) 
     at ru.erarta.erarta.TabsFragmentActivity.onTabChanged(TabsFragmentActivity.java:108) 
     at ru.erarta.erarta.TabsFragmentActivity.initialiseTabHost(TabsFragmentActivity.java:73) 
     at ru.erarta.erarta.TabsFragmentActivity.onCreate(TabsFragmentActivity.java:51) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836) 
     ... 11 more 

$ find . | grep support입니다 :

여기 691,363,210
./smali/android/support 
./smali/android/support/v4 
./smali/android/support/v4/app 
./smali/android/support/v4/app/Watson$OnCreateOptionsMenuListener.smali 
./smali/android/support/v4/app/Watson$OnOptionsItemSelectedListener.smali 
./smali/android/support/v4/app/Watson$OnPrepareOptionsMenuListener.smali 
./smali/android/support/v4/app/Watson.smali 
./smali/com/actionbarsherlock/internal/view/View_HasStateListenerSupport.smali 

는 TabsFragmentActivity.java:108 주위에 코드입니다 :

public void onTabChanged(String tag) { 
    TabInfo newTab = this.mapTabInfo.get(tag); 
    if (mLastTab != newTab) { 
     FragmentTransaction ft = this.getSupportFragmentManager().beginTransaction(); 
     if (mLastTab != null) { 
      if (mLastTab.fragment != null) { 
       ft.detach(mLastTab.fragment); 
      } 
     } 
     if (newTab != null) { 
      if (newTab.fragment == null) { 
       newTab.fragment = Fragment.instantiate(this, 
         newTab.clss.getName(), newTab.args); 
       ft.add(R.id.realtabcontent, newTab.fragment, newTab.tag); 
      } else { 
       ft.attach(newTab.fragment); 
      } 
     } 

     mLastTab = newTab; 
     ft.commit(); 
     this.getSupportFragmentManager().executePendingTransactions(); 
    } 
} 
+0

'CalendarActivity'와'TabsFragmentActivity'의 108 행을 보여주세요. – WarrenFaith

+0

답장을 보내 주셔서 감사합니다. 질문에 108 번 절차를 추가했으며 여기에 ['CalendarActivity'] (https://gist.github.com)가 있습니다./cfr/5345763) – Cfr

+0

ehm, 108 행은 실제로'newTab.fragment = Fragment.instantiate (this, newTab.clss.getName(), newTab.args); ' – Cfr

답변

0

문제는 아주 기본입니다 : 내가 탭에 FragmentActivity 대신 Fragment을 넣어하려고했다. Here is 관련 토론 ABS 그룹.

관련 문제