2012-01-23 5 views
0

내 코드에 오류가있는 이유는 무엇입니까? 같은 패키지에서 두 클래스를 호출합니다. 하나는 Activity를 확장하는 "BatteryInformation.java"이고 그 기능은 Battery Info를 얻는 것입니다. 다음은 Activity를 확장하는 "TaskKiller.java"이며 그 기능은 실행중인 응용 프로그램을 종료하는 것입니다. 이 두 클래스는 오류가 없으며이 UI없이 실행하면 제대로 작동합니다. 저를 도와주세요?내 탭 호스트에서 강제 닫기

01-23 10:30:55.949: D/AndroidRuntime(12278): Shutting down VM 
01-23 10:30:55.949: W/dalvikvm(12278): threadid=1: thread exiting with uncaught exception (group=0x40018578) 
01-23 10:30:55.949: E/AndroidRuntime(12278): FATAL EXCEPTION: main 
01-23 10:30:55.949: E/AndroidRuntime(12278): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=batterydoctorsaver.thesis.BatteryInformation } 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.app.Activity.startActivityForResult(Activity.java:2827) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.app.Activity.startActivity(Activity.java:2933) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at batterydoctorsaver.thesis.BatteryDoctorSaverActivity$1.onClick(BatteryDoctorSaverActivity.java:22) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.view.View.performClick(View.java:2485) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.view.View$PerformClick.run(View.java:9080) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.os.Handler.handleCallback(Handler.java:587) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.os.Handler.dispatchMessage(Handler.java:92) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.os.Looper.loop(Looper.java:130) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at android.app.ActivityThread.main(ActivityThread.java:3687) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at java.lang.reflect.Method.invokeNative(Native Method) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at java.lang.reflect.Method.invoke(Method.java:507) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
01-23 10:30:55.949: E/AndroidRuntime(12278): at dalvik.system.NativeStart.main(Native Method) 

이 사람이 나를 도울 수있다 : 여기

public class BatteryDoctorSaverActivity extends Activity { 
    TabHost tabHost; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     tabHost = (TabHost) findViewById(R.id.tabhost); 

     // Resources res = getResources(); // Resource object to get Drawables 
     TabHost.TabSpec spec; // Resusable TabSpec for each tab 
     Intent intent; // Reusable Intent for each tab 

     // Create an Intent to launch an Activity for the tab (to be reused) 
     intent = new Intent().setClass(this, BatteryInformation.class); 

     // Initialize a TabSpec for each tab and add it to the TabHost 
     spec = tabHost.newTabSpec("Battery Information").setIndicator("") 
       .setContent(intent); 
     tabHost.addTab(spec); 

     // Do the same for the other tabs 
     intent = new Intent().setClass(this, TaskKiller.class); 
     spec = tabHost.newTabSpec("Task Killer").setIndicator("TaskKiller") 
       .setContent(intent); 
     tabHost.addTab(spec); 
      tabHost.setCurrentTab(0); 

    } 
} 

그리고

는 로그 캣입니다. 나는 거의 2 일 동안이 UI와 겹쳐있다. 나는 무엇을해야할지 몰랐다. 도와주세요.

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="batterydoctorsaver.thesis" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="10" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:label="@string/app_name" 
      android:name=".BatteryDoctorSaverActivity" > 
      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

    <activity 
     android:label="@string/app_name" 
     android:name=".BatteryInformation" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

    <!-- <activity android:name = ".BatteryInformation"/> --> 

</manifest> 

@Lucifer 여기 선생님 : 도움말 : 주셔서 감사합니다

@Lucifer 여기 내의 AndroidManifest.xml 파일입니다

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="batterydoctorsaver.thesis" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="10" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:label="@string/app_name" 
      android:name=".BatteryDoctorSaverActivity" > 
      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".BatteryInformation" /> 
     <activity android:name=".TaskKiller" /> 
    </application> 

</manifest> 

여기에 5 월 BatterDoctorSaverActivity.java 내 코드입니다 :

package batterydoctorsaver.thesis; 

import android.app.TabActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.TabHost; 
import batterydoctorsaver.thesis.BatteryInformation; 
import batterydoctorsaver.thesis.TaskKiller; 

public class BatteryDoctorSaverActivity extends TabActivity { 
    TabHost tabHost; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     tabHost = getTabHost(); 
     tabHost.setup(); 
     tabHost.addTab(tabHost.newTabSpec("tab1") 
       .setIndicator("Battery Information") 
       .setContent(new Intent(this, BatteryInformation.class))); 
     tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("Task Killer") 
       .setContent(new Intent(this, TaskKiller.class))); 

     // tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("Updates").setContent(
     // new Intent(this, DownloadList.class))); 

    } 
} 
+0

'AndroidManifest.xml'파일에 'BatteryInformation' 활동을 선언 했습니까? –

+0

아 니요. 하지만이 과 마찬가지로 androidmanifest에 넣을 것입니까? –

+0

예, 매니페스트를 사용하려면 ** 모든 ** Activities **를 매니페스트에 선언해야합니다. –

답변

3

AndroidManifest.xml 파일에 활동을 추가해야합니다. 모든 활동에는 해당 파일에 대한 항목이 있어야합니다. 코드에서

삭제이 라인,

<activity 
     android:label="@string/app_name" 
     android:name=".BatteryInformation" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

대신 다음 줄을 사용합니다.

<activity> android:name=.BatteryInformation /> 
+0

감사합니다. –

+0

나는 아직도 오류가 발생했습니다. AndroidManifest.xml 파일에 활동을 넣었지만 여전히 오류가 있습니다. –

+0

문제의 AndroidManifest.xml 코드를 업로드 할 수 있습니까? – Lucifer