Почему я постоянно получаю исключения ActivityNotFound?

1

Я начинающий программист на Android, и чтобы помочь мне понять, как действительно работает Intents, я хотел собрать небольшую активность, которая позволила бы пользователю вызвать startActivity() с любыми действиями и данными, которые они хотят. Я пробовал много разных комбинаций, включая "android.intent.action.VIEW" и " http://www.google.com". Независимо от того, какие комбинации я использую, я всегда получаю ActivityNotFoundException. Любые идеи относительно того, почему?

Код в моем единственном действии ниже:

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

        Button goButton = (Button) findViewById(R.id.button);

        goButton.setOnClickListener(new ClickListener());
    }

    private class ClickListener implements OnClickListener
    {
        @Override
        public void onClick(View arg0) 
        {
            String id = ((EditText) findViewById(R.id.intent)).getText().toString();
            String data = ((EditText) findViewById(R.id.data)).getText().toString();

            Builder builder = new Builder();
            builder = builder.path(data);

            Uri path = builder.build();

            Intent i = new Intent(id, path);
            startActivity(i);
        }
    }
}

Результаты logcat оболочки adb с момента запуска приложения сразу после нажатия кнопки "Принудительное закрытие" находятся ниже.

I/ActivityManager( 1086):
 Starting activity: Intent { act=android.intent.action.
MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=tk.h2g2guy.testin
gIntents/.TestingIntents }
I/ActivityManager( 1086): Start proc tk.h2g2guy.testingIntents for activity tk.h
2g2guy.testingIntents/.TestingIntents: pid=4037 uid=10054 gids={}
D/dalvikvm( 1006): GC_EXPLICIT freed 289 objects / 10960 bytes in 98ms
D/dalvikvm( 1006): GC_EXPLICIT freed 47 objects / 2088 bytes in 121ms
D/dalvikvm( 1006): GC_EXPLICIT freed 2 objects / 48 bytes in 109ms
I/ActivityManager( 1086): Displayed activity tk.h2g2guy.testingIntents/.TestingI
ntents: 462 ms (total 462 ms)
D/dalvikvm( 2300): GC_EXPLICIT freed 1226 objects / 61640 bytes in 69ms
I/ActivityManager( 1086): Starting activity: Intent { act=android.intent.action.
VIEW dat=http%3A//www.google.com }
D/AndroidRuntime( 4037): Shutting down VM
W/dalvikvm( 4037): threadid=1: thread exiting with uncaught exception (group=0x4
001d7e0)
E/AndroidRuntime( 4037): FATAL EXCEPTION: main
E/AndroidRuntime( 4037): android.content.ActivityNotFoundException: No Activity
found to handle Intent { act=android.intent.action.VIEW dat=http%3A//www.google.
com }
E/AndroidRuntime( 4037):        at android.app.Instrumentation.checkStartActivit
yResult(Instrumentation.java:1408)
E/AndroidRuntime( 4037):        at android.app.Instrumentation.execStartActivity
(Instrumentation.java:1378)
E/AndroidRuntime( 4037):        at android.app.Activity.startActivityForResult(A
ctivity.java:2817)
E/AndroidRuntime( 4037):        at android.app.Activity.startActivity(Activity.j
ava:2923)
E/AndroidRuntime( 4037):        at tk.h2g2guy.testingIntents.TestingIntents$Clic
kListener.onClick(TestingIntents.java:41)
E/AndroidRuntime( 4037):        at android.view.View.performClick(View.java:2408
)
E/AndroidRuntime( 4037):        at android.view.View$PerformClick.run(View.java:
8816)
E/AndroidRuntime( 4037):        at android.os.Handler.handleCallback(Handler.jav
a:587)
E/AndroidRuntime( 4037):        at android.os.Handler.dispatchMessage(Handler.ja
va:92)
E/AndroidRuntime( 4037):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 4037):        at android.app.ActivityThread.main(ActivityThrea
d.java:4627)
E/AndroidRuntime( 4037):        at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime( 4037):        at java.lang.reflect.Method.invoke(Method.java:5
21)
E/AndroidRuntime( 4037):        at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 4037):        at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:626)
E/AndroidRuntime( 4037):        at dalvik.system.NativeStart.main(Native Method)

W/ActivityManager( 1086):   Force finishing activity tk.h2g2guy.testingIntents/.
TestingIntents
W/ActivityManager( 1086): Activity pause timeout for HistoryRecord{449d4518 tk.h
2g2guy.testingIntents/.TestingIntents}
I/Process ( 4037): Sending signal. PID: 4037 SIG: 9
I/ActivityManager( 1086): Process tk.h2g2guy.testingIntents (pid 4037) has died.

I/WindowManager( 1086): WIN DEATH: Window{44bd4120 tk.h2g2guy.testingIntents/tk.
h2g2guy.testingIntents.TestingIntents paused=false}
Теги:
android-activity
exception

2 ответа

2
Лучший ответ

Я пробовал много разных комбинаций, в том числе "android.intents.action.VIEW" и "HTML://www.google.com".

android.intents.action.VIEW не является действительным действием. Вероятно, вы захотите сбросить s.

html://www.google.com не является допустимым URL. Вероятно, вы захотите заменить html:// на http://.

  • 0
    И ... вот что происходит, когда ты не читаешь. Спасибо за указание на это, но на самом деле я использовал правильные формы в приложении. Все еще не работает.
  • 0
    @Mrrvomun: удалите все ссылки на Builder (вам это не нужно) и просто вставьте набранный текст в Intent .
Показать ещё 3 комментария
1

Проверьте свои журналы:

adb shell logcat

Но я догадываюсь, что у вас отсутствует определение вашего Activity в AndroidManifest.xml

  • 1
    +1 - AndroidManifest.xml тоже мое предположение.
  • 0
    Основное и единственное действие находится в файле AndroidManifest.xml. Я работаю в Eclipse, так что я почти уверен, что не облажался.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню