2013-04-25 1 views
0

사용자가 현지 업체 및 이벤트를 찾을 수있는 응용 프로그램을 설정하려고합니다. 작동하는지도가 있지만 탭으로 된 작업 표시 줄에 통합하는 데 문제가 있습니다. 불행히도 "불행하게도 [app]는 멈췄습니다." 도움을 주시면 대단히 감사하겠습니다.Google지도 API v2와 함께 작업 표시 줄 통합

ActionBarMain.java

@SuppressLint("NewApi") 
public class ActionBarMain extends Activity implements TabListener { 
    RelativeLayout rl; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_action_bar_main); 
     try { 
      rl = (RelativeLayout) findViewById(R.id.mainLayout); 
      fragMentTra = getFragmentManager().beginTransaction(); 
      ActionBar bar = getActionBar(); 
      bar.addTab(bar.newTab().setText("Map").setTabListener(this)); 
      bar.addTab(bar.newTab().setText("Businesses").setTabListener(this)); 
      bar.addTab(bar.newTab().setText("Events").setTabListener(this)); 
      bar.addTab(bar.newTab().setText("Facebook").setTabListener(this)); 

      bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM 
        | ActionBar.DISPLAY_USE_LOGO); 
      bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
      bar.setDisplayShowHomeEnabled(true); 
      bar.setDisplayShowTitleEnabled(false); 
      bar.show(); 

     } catch (Exception e) { 
      e.getMessage(); 
     } 
     /** 
     * Hiding Action Bar 
     */ 
    } 

    Fragment fram1; 
    FragmentTransaction fragMentTra = null; 
    FragMent2 fram2; 
    FragMent3 fram3; 
    FragMent4 fram4; 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_action_bar_main, menu); 
     return true; 
    } 

    @Override 
    public void onTabReselected(Tab tab, FragmentTransaction ft) { 
    } 

    @Override 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 

     if (tab.getText().equals("Map")) { 
      try { 
       rl.removeAllViews(); 
      } catch (Exception e) { 
      } 
      fram1 = new Fragment(); 
      fragMentTra.addToBackStack(null); 
      fragMentTra = getFragmentManager().beginTransaction(); 
      fragMentTra.add(rl.getId(), fram1); 
      fragMentTra.commit(); 
     } else if (tab.getText().equals("Businesses")) { 
      try { 
       rl.removeAllViews(); 
      } catch (Exception e) { 
      } 
      fram2 = new FragMent2(); 
      fragMentTra.addToBackStack(null); 
      fragMentTra = getFragmentManager().beginTransaction(); 
      fragMentTra.add(rl.getId(), fram2); 
      fragMentTra.commit(); 
     } else if (tab.getText().equals("Events")) { 
      try { 
       rl.removeAllViews(); 
      } catch (Exception e) { 
      } 
      fram3 = new FragMent3(); 
      fragMentTra.addToBackStack(null); 
      fragMentTra = getFragmentManager().beginTransaction(); 
      fragMentTra.add(rl.getId(), fram3); 
      fragMentTra.commit(); 
     } else if (tab.getText().equals("Facebook")) { 
      try { 
       rl.removeAllViews(); 
      } catch (Exception e) { 
      } 
      fram2 = new FragMent2(); 
      fragMentTra.addToBackStack(null); 
      fragMentTra = getFragmentManager().beginTransaction(); 
      fragMentTra.add(rl.getId(), fram2); 
      fragMentTra.commit(); 
     } 

    } 

    @Override 
    public void onTabUnselected(Tab tab, FragmentTransaction ft) { 

    } 

} 

FragMent1.java :

public class FragMent1 extends FragmentActivity{ 

SupportMapFragment mMap; 
GoogleMap googleMap; 

    @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_action_bar_main); 

     mMap = (SupportMapFragment) getSupportFragmentManager() 
     .findFragmentById(R.id.mainGrid); 

     googleMap = mMap.getMap(); 
} 
} 

의 AndroidManifest.xml :

INTEG하려고 몇 가지 오류를 수정 : 편집

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.ahmad.actionBar" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <permission 
     android:name="com.ahmad.actionbar.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature"/> 
    <uses-permission android:name="com.ahmad.actionbar.permission.MAPS_RECEIVE"/> 

    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="17" /> 

    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
    <!-- The following two permissions are not required to use 
    Google Maps Android API v2, but are recommended. --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <!-- Maps API needs OpenGL ES 2.0. --> 
    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true"/> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:allowBackup="True"> 
     <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="super_secret_key"/> 
     <activity 
      android:name="com.ahmad.actionbar.MainActivity" 
      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=".ActionBarMain" 
      android:label="@string/title_activity_action_bar_main" 
      android:uiOptions="splitActionBarWhenNarrow" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

2 개의 앱을 함께 평가하고 새로운 logcat을 추가했습니다.

로그 캣 :

04-24 21:34:33.242: D/AndroidRuntime(11335): Shutting down VM 
04-24 21:34:33.242: W/dalvikvm(11335): threadid=1: thread exiting with uncaught exception (group=0x40e26930) 
04-24 21:34:33.252: E/AndroidRuntime(11335): FATAL EXCEPTION: main 
04-24 21:34:33.252: E/AndroidRuntime(11335): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ahmad.actionBar/com.ahmad.actionbar.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.ahmad.actionbar.MainActivity" on path: /data/app/com.ahmad.actionBar-2.apk 
04-24 21:34:33.252: E/AndroidRuntime(11335): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at android.os.Looper.loop(Looper.java:137) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at android.app.ActivityThread.main(ActivityThread.java:5041) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at java.lang.reflect.Method.invokeNative(Native Method) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at java.lang.reflect.Method.invoke(Method.java:511) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at dalvik.system.NativeStart.main(Native Method) 
04-24 21:34:33.252: E/AndroidRuntime(11335): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ahmad.actionbar.MainActivity" on path: /data/app/com.ahmad.actionBar-2.apk 
04-24 21:34:33.252: E/AndroidRuntime(11335): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
04-24 21:34:33.252: E/AndroidRuntime(11335): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
04-24 21:34:33.252: E/AndroidRuntime(11335): ... 11 more 

답변

0

오류 "클래스 MainActivity를 찾을 수 없습니다"말했다.

게시 한 클래스의 이름은 ActionBarMain이며 Manifest 파일에는 MainActivity가 기본 클래스라고되어 있습니다.

프로젝트에 MainActivity가없고 ActionBarMain을 첫 번째 활동으로 설정하려는 경우 그런 다음 Manifest 파일에서 ActionBarMain을 MainAcitivty로 바꿉니다.

+0

감사합니다. 나는 작업 맵과 작업 탭이있는 작업 표시 줄로 시작했습니다. 함께 결합하는 실수. –

+0

그래서 문제가 해결 되었습니까? – Sharj

+0

거기에 마지막 문제가 아니었지만 나머지 부분을 해결하고 지금 실행하고 실행할 수있었습니다. 다시 한 번 감사드립니다. –