Невозможно разрешить действия для: Намерения
У меня возникла проблема при запуске Android unit test. Я получил эту ошибку, когда попытался выполнить простой тест.
Здесь журнал:
Blockquote java.lang.RuntimeException: Невозможно разрешить действие для: Intent {act = android.intent.action.MAIN flg = 0x10000000 cmp = com.wsandroid. Деятельности /.SplashActivity} at android.app.Instrumentation.startActivitySync(Instrumentation.java:371) на android.test.InstrumentationTestCase.launchActivityWithIntent(InstrumentationTestCase.java:120) на android.test.InstrumentationTestCase.launchActivity(InstrumentationTestCase.java:98) at 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) at android.app.Инструментация $InstrumentationThread.run(Instrumentation.java:1447)
Эта ошибка возникает для Android менее 2.2. Он отлично работает для эмулятора Android 2.2. Тем не менее, у Android 2.2 есть ошибка отправки ключа дважды, хотя мы только нажимаем его. Приложение для тестирования работает на платформе Android 2.2.
Цените, если кто-нибудь из вас может мне помочь.
Dzung.
Ответы
Ответ 1
У меня была аналогичная проблема с простым тестовым проектом для приложения, которое было всего лишь заставкой. Я обнаружил, что неправильно реализовал конструктор. Моя первоначальная реализация конструктора была такой...
public SplashScreenTest(){
super("com.mycomp.myapp.SplashScreen", SplashScreen.class);
}
После того, как я ударил головой о стену, я как-то решил удалить SplashScreen из аргумента pkg super(). Моя успешная реализация теперь такая...
public SplashScreenTest() {
super("com.mycomp.myapp", SplashScreen.class);
}
Я надеюсь, что это поможет вам или другим решить проблему.
Ответ 2
Это также может быть причиной отсутствия
Убедитесь, что у вас есть соответствующая запись в манифесте.
<activity android:name=".SplashActivity" ...
Ответ 3
Попробуйте проверить файл 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>
Вам нужно проверить следующую строку:
<instrumentation android:targetPackage="com.tablet.tablet"
android:name="android.test.InstrumentationTestRunner" />
Итак, targetPackage должен быть таким же, как в вашем коде.
Ответ 4
У меня была специфическая схожая проблема при использовании AndroidAnnotations lib.
Позже я узнал, что он забыл использовать сгенерированный класс (MyActivity_
вместо MyActivity
).
Ответ 5
В моем случае проблема заключалась в том, что TestFragmentActivity, то есть Activity, используемая в нашем тесте
extends ActivityInstrumentationTestCase2<TestFragmentActivity>
должен быть доступен в пакете, определенном в Manifest.xml, как targetPackage:
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="de.my.androidhd" />
Моим решением было переместить TestFragmentActivity в тестируемый пакет приложений.
Ответ 6
У меня было два действия с тем же именем в разных пакетах. Проблема заключалась в импорте из неправильного пакета. Я трачу много времени на это, может быть, это сэкономит время.
Ответ 7
Если вы дважды отправляете ключи, уверены ли вы, что теперь не выполняете действия "Вниз" и "Вниз"? У меня была эта проблема при использовании 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());
}
}
}