ClassNotFoundException даже трудно, я могу запустить Activity с помощью команды оболочки adb - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть instrumented test для моего приложения для Android. Я хочу начать телефонный разговор через Intent

В этом тесте я пытаюсь получить класс, используя

private static final String ACTIVITY_TO_BE_TESTED = "com.samsung.android.dialer/.DialtactsActivity";
Class activityClass = Class.forName(ACTIVITY_TO_BE_TESTED);

Но это бросает ClassNotFoundException.

Так, как мы можем получить класс против другого приложения на устройстве Android?

Добавление дополнительной информации: я могу начать упражнение, используя

am start -n com.samsung.android.dialer/.DialtactsActivity -a android.intent.action.VIEW

Вот мой AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xyz.com.myapplication">

    <uses-sdk android:targetSdkVersion="27" android:minSdkVersion="14" />
    <instrumentation
        android:name="androidx.test.runner.AndroidJUnitRunner"
        android:targetPackage="com.samsung.android.dialer.DialtactsActivity"
        android:targetProcesses="*">
        <meta-data
            android:name="remoteMethod"
            android:value="androidx.test.espresso.remote.EspressoRemote#remoteInit" />
    </instrumentation>    
</manifest>
...