Начало нового действия, но я получаю исключение ActivityNotFoundException - PullRequest
0 голосов
/ 04 января 2012

Хорошо, так что ... когда я подключаю телефон к компьютеру, он запускает приложение, а после завершения режима сна () он вылетает с ошибкой, показанной внизу. Весь мой код, который, я думаю, вам понадобится, показан в цитатах.

Действительно сбит с толку, Почему я получаю эту проблему. У меня есть файл mainActivity.java, который выглядит следующим образом:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
Thread timer = new Thread(){
        public void run(){
            try{
                sleep(1000);
            } catch (InterruptedException e){
                e.printStackTrace();
            }finally{
                Intent intent = new             Intent("com.worcestershire.android.Pagetwo", null);
                startActivity(intent);
            }
        }
    };
    timer.start();}

Страница 2 выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" 
android:background="@raw/logo"
>

   <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:text="This is Activity 2" />

   <Button android:text="Previous"
    android:id="@+id/Button02"
    android:layout_width="250px"
        android:textSize="18px"
    android:layout_height="55px">
</Button> 


</LinearLayout>

И мой манифест выглядит так:

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

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

<application
    android:icon="@drawable/maps_launcher"
    android:label="@string/app_name" >
    <activity
        android:name="com.worcestershire.android.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=".PAGETWO"
        android:label="@string/app_name" >

    </activity>


</application>

</manifest>

Вот лог:

01-04 12:27:05.711: W/dalvikvm(25483): threadid=9: thread exiting with uncaught      exception (group=0x4001d5a0)
01-04 12:27:05.711: E/AndroidRuntime(25483): FATAL EXCEPTION: Thread-10
01-04 12:27:05.711: E/AndroidRuntime(25483): android.content.ActivityNotFoundException:  No  
Activity found to handle Intent { act=com.worcestershire.android.Pagetwo }
01-04 12:27:05.711: E/AndroidRuntime(25483):    at  android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1569)
01-04 12:27:05.711: E/AndroidRuntime(25483):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1539)
01-04 12:27:05.711: E/AndroidRuntime(25483):    at android.app.Activity.startActivityForResult(Activity.java:2901)
01-04 12:27:05.711: E/AndroidRuntime(25483):    at  android.app.Activity.startActivity(Activity.java:3007)
01-04 12:27:05.711: E/AndroidRuntime(25483):    at  com.worcestershire.android.MainActivity$1.run(MainActivity.java:43)

Любая помощь будет полезна. Ура!

Ответы [ 5 ]

5 голосов
/ 04 января 2012

Название вашей активности в Манифесте должно быть точно таким же, как и при вызове. Если класс активности называется Pagetwo, то атрибут android:name=".Pagetwo" должен быть в вашем манифесте. Надеюсь, это поможет.

1 голос
/ 04 января 2012

Пожалуйста, добавьте Page2 Activity в свой файл манифеста и используйте следующий код в mainActivity

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
Thread timer = new Thread(){
        public void run(){
            try{
                sleep(1000);
            } catch (InterruptedException e){
                e.printStackTrace();
            }finally{
                Intent intent = new             Intent(MainActivity.this, Page2.class);
                startActivity(intent);
            }
        }
    };
    timer.start();}
1 голос
/ 04 января 2012

Я думаю, вам нужно указать имя действия с пакетом в манифесте.

0 голосов
/ 04 января 2012

вам не нужно повторять весь пакет при объявлении активности, будет работать только .ActivityName

 Intent intent = new  Intent(this, NextActivityTobeCalled.class);
 startActivity(intent);
0 голосов
/ 04 января 2012

Ну вот в чем проблема ...

Не найдена активность для обработки намерения { act = com.worcestershire.android.Pagetwo}

Вероятно, вы получаете эту ошибку, потому что вы не добавили класс в качестве действия в манифест. Для получения дополнительной информации смотрите здесь: Использование намерения в приложении Android, чтобы показать другое действие

Также ваше намерение выглядит неправильно. Вы хотите, чтобы это выглядело примерно так:

new Intent(CurrentActivity.this, NextActivity.class);

Где CurrentActivity и NextActivity - это названия классов занятий, в которых вы находитесь и ХОТИТЕ ПОЙТИ соответственно.

...