android.content.ActivityNotFoundException много - PullRequest
0 голосов
/ 16 декабря 2011

Я не получаю следующую исправленную ошибку (logcat):

E/AndroidRuntime( 1010): FATAL EXCEPTION: Thread-105
E/AndroidRuntime( 1010): android.content.ActivityNotFoundException: No Activity
found to handle Intent { act=com.androidpeople.xml.parsing.appz }
E/AndroidRuntime( 1010):        at android.app.Instrumentation.checkStartActivit
yResult(Instrumentation.java:1512)
E/AndroidRuntime( 1010):        at android.app.Instrumentation.execStartActivity
(Instrumentation.java:1384)
E/AndroidRuntime( 1010):        at android.app.Activity.startActivityForResult(A
ctivity.java:3190)
E/AndroidRuntime( 1010):        at android.app.Activity.startActivity(Activity.j
ava:3297)
E/AndroidRuntime( 1010):        at com.androidpeople.xml.parsing.Splash$1.run(Sp
lash.java:30)

так много пытался, но, может быть, кто-то видит свет;

Splash.java. Нет ошибок компиляции в любом классе. только на эмуляторе приложение вылетает после заставки

package com.androidpeople.xml.parsing;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;

public class Splash extends Activity {
    protected boolean _active = true;
    protected int _splashTime = 2000;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        Thread splash = new Thread(){
            @Override
            public void run(){
                try{
                    int waited= 0;
                    while(_active && (waited < _splashTime)){
                        sleep(100);
                        if(_active){
                            waited += 100;
                        }
                    }
                }catch(InterruptedException e){
                }finally {
                    finish();
                    startActivity(new Intent(Splash.this , appz.class));
                    stop();
                }
            }
        };
    splash.start();
    }

    @Override
    public boolean onTouchEvent(MotionEvent event){
        if(event.getAction() == MotionEvent.ACTION_DOWN){
            _active = false;
        }
        return true;
    }
}

de appz.java - это:

package com.androidpeople.xml.parsing;

import android.app.Activity;
import android.os.Bundle;

public class appz extends Activity{
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.example);
    }

}

Манифест:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.androidpeople.xml.parsing"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Splash">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       <activity
            android:label="Appz"
            android:name=".appz" />      
    </application>


<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>

С этим банкоматом появляется экран, но происходит мгновенное падение

Ответы [ 4 ]

2 голосов
/ 16 декабря 2011

Проверьте, объявили ли вы активность в теге активности в файле манифеста.

РЕДАКТИРОВАТЬ:

Файл манифеста:

...
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        ...
        <activity
            android:label="Appz"
            android:name=".Appz" />            
    </application>
...
1 голос
/ 16 декабря 2011

Я уверен, что вы загрузили учебник по XML-синтаксису с сайта Androidpeople.com, и, чтобы решить вышеуказанную проблему, просто проверьте файл AndroidManifest.xml, независимо от того, объявили вы активность или нет.* Поскольку вы пытаетесь реализовать действие на экране-заставке, это должно быть как ГЛАВНЫЙ и ЗАПУСК, поэтому примените фильтр намерений для этого действия.Ваше приложение должно быть объявлено в файле AndroidManifest.xml.

0 голосов
/ 21 декабря 2011

вы вызвали метод финиша перед вызовом нового намерения так что отсутствует контекст, пожалуйста, используйте этот код я изменил порядок

     Thread splash = new Thread(){
        @Override
        public void run(){
            try{
                int waited= 0;
                while(_active && (waited < _splashTime)){
                    sleep(100);
                    if(_active){
                        waited += 100;
                    }
                }
            }catch(InterruptedException e){
            }finally {
                runOnUiThread(new Runnable(){
                startActivity(new Intent(Splash.this , appz.class));
               }
             this.finish();
            }
        }
    };
splash.start();
0 голосов
/ 16 декабря 2011

Ваш класс appz должен расширяться Activity - я полагаю, это так.

Скорее всего, проблема в том, что вы не добавили его в AndroidManifest.xml, как указано здесь :

Возможность запустить конкретное действие может быть применено, когда оно объявлено в теге манифеста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...