2012-01-23 50 views
0

私のコードにエラーがあるのはなぜですか?私は同じパッケージで2つのクラスを呼び出しています。 1つはActivityを拡張する "BatteryInformation.java"で、その機能はBattery Infoを取得することです。次の1つはActivityを拡張する "TaskKiller.java"で、その機能は実行中のアプリケーションを強制終了することです。この2つのクラスにはエラーはなく、このUIなしで実行するとうまくいきます。手伝ってくれませんか?Tabhostで強制終了

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); 

    } 
} 

そして、ここでLogCatです:

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) 

誰もこれで私を助けることができます。私はほぼ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ここSIR:HELP :)

@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

はい、使用する前にマニフェストに**すべての**アクティビティ**を宣言する必要があります。 –

答えて

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

関連する問題