Невозможно разрешить действия для: Намерения

У меня возникла проблема при тестировании блока Android. Я получил эту ошибку, когда попытался выполнить простой тест.

Вот журнал:

Blockquote java.lang.RuntimeException: Невозможно разрешить действие для: Intent {act = android.intent.action.MAIN flg = 0x10000000 cmp = com.wsandroid. Активности / .SplashActivity} в android.app.Instrumentation.startActivitySync (Instrumentation.java : 371) at android.test.InstrumentationTestCase.launchActivityWithIntent (InstrumentationTestCase.java:120) в android.test.InstrumentationTestCase.launchActivity (InstrumentationTestCase.java:98) в android.test.ActivityInstrumentationTestCase2.getActivity (ActivityInstrumentationTestCase2.java:87) at com .wsandroid.test.activity.TestEULA.setUp (TestEULA.java:15) в android.test.AndroidTestRunner.runTest (AndroidTestRunner.java:169) на android.test.AndroidTestRunner.runTest (AndroidTestRunner.java:154) на android. Test.InstrumentationTestRunner.onStart (InstrumentationTestRunner.java:430) в android.app.Инструментация $ InstrumentationThread.run (Instrumentation.java:1447)

Эта ошибка возникает для Android менее 2.2. Он отлично работает для эмулятора Android 2.2. Тем не менее, у Android 2.2 есть ошибка отправки ключа дважды, хотя мы только нажимаем его. Приложение для тестирования работает на платформе Android 2.2.

Цените, если кто-то из вас может мне помочь.

Dzung.

У меня была аналогичная проблема с простым тестовым проектом для приложения, которое было просто заставкой. Я обнаружил, что неправильно реализовал конструктор. Моя первоначальная реализация конструктора была такой …

public SplashScreenTest(){ super("com.mycomp.myapp.SplashScreen", SplashScreen.class); } 

После того, как я ударил головой о стену, я как-то решил удалить SplashScreen из аргумента pkg super (). Моя успешная реализация теперь такая …

 public SplashScreenTest() { super("com.mycomp.myapp", SplashScreen.class); } 

Я надеюсь, что это поможет вам или другим решить эту проблему.

Попробуйте проверить файл Manifest.xml:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tablet.test" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <uses-library android:name="android.test.runner" /> </application> <uses-sdk android:minSdkVersion="8" /> <!-- This line below! --> <instrumentation android:targetPackage="com.tablet.tablet" android:name="android.test.InstrumentationTestRunner" /> </manifest> ? <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tablet.test" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <uses-library android:name="android.test.runner" /> </application> <uses-sdk android:minSdkVersion="8" /> <!-- This line below! --> <instrumentation android:targetPackage="com.tablet.tablet" android:name="android.test.InstrumentationTestRunner" /> </manifest> 

Вам нужно проверить следующую строку:

 <instrumentation android:targetPackage="com.tablet.tablet" android:name="android.test.InstrumentationTestRunner" /> 

Таким образом, targetPackage должен быть таким же, как в вашем коде.

Это также может быть причиной отсутствия

Убедитесь, что у вас есть соответствующая запись в манифесте.

 <activity android:name=".SplashActivity" ... 

У меня была подобная проблема при использовании AndroidAnnotations lib.

Позже я узнал, что это было из-за того, что я забыл использовать сгенерированный класс ( MyActivity_ вместо MyActivity ).

В моем случае проблема заключалась в том, что TestFragmentActivity, что означает активность, используемую в нашем тесте

 extends ActivityInstrumentationTestCase2<TestFragmentActivity> 

Должны быть доступны в пакете, определенном в Manifest.xml как targetPackage:

 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="de.my.androidhd" /> 

Моим решением было переместить TestFragmentActivity в тестируемый пакет приложений.

У меня было два действия с одинаковым именем в разных пакетах. Проблема заключалась в импорте из неправильного пакета. Я трачу много времени на это, может быть, это немного сэкономит.

Если вы отправляете два раза дважды, вы уверены, что теперь не выполняете действия «Вниз» и «Вниз»? У меня была эта проблема при использовании Robotium и сгенерировала это, чтобы упростить задачу:

 import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.widget.EditText; import com.jayway.android.robotium.solo.Solo; public static void type(Solo robot, EditText edit, String text) { int index = 0; //Find the index of this control, as Robotium doesn't seem to like R.id for (int i = 0; i < robot.getCurrentEditTexts().size(); i++) { if (robot.getCurrentEditTexts().get(i).getId() == edit.getId()) { index = i; } } robot.clickOnEditText(index); KeyCharacterMap map = KeyCharacterMap.load(KeyCharacterMap.BUILT_IN_KEYBOARD); KeyEvent[] events = map.getEvents(text.toCharArray()); for (int event = 0; event < events.length; event++) { if (events[event].getAction() == KeyEvent.ACTION_DOWN) { robot.sendKey(events[event].getKeyCode()); } } }