私はソースコードを持たないパッケージのテストに取り組んでおり、3つのボタンを3秒間押してパッケージを起動します。典型的な方法でパッケージを起動しようとすると、java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Intent android.content.Intent.addFlags(int)
エラーが発生します。以下は、私がgetContext
代わりのgetTargetContext
を使用してみました私のコードパッケージ名でアクティビティを起動する
@Before
public void setup() {
//Initialize UiDevice instance
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
mDevice = UiDevice.getInstance(instrumentation);
mDevice.pressHome();
final String launcherPackage = mDevice.getLauncherPackageName();
assertThat(launcherPackage, notNullValue());
mDevice.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)), LAUNCH_TIMEOUT);
Context context = InstrumentationRegistry.getTargetContext();
final Intent intent = context.getPackageManager()
.getLaunchIntentForPackage(DEALER_DIAG_PACKAGE);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
mDevice.wait(Until.hasObject(By.pkg(DEALER_DIAG_PACKAGE).depth(0)), LAUNCH_TIMEOUT);
}
である、しかし、誰かが意図がエクスポートされていない場合、私は関係なく、私は何をすべきか、パッケージをこのように起動しないことができないだろうと私に指摘しました。私は、誰もが、私はこのエラーを取得しています理由として任意の入力を持っていますコマンドadb logcat ActivityManager:V *:F
などadb shell pm list packages -f
--------- beginning of main
I/ActivityManager(2296): START u0 {flg=0x10000000
cmp=com.android.systemui/.usb.UsbDebuggingActivity (has extras)} from uid
1000 on display 0
I/ActivityManager(2296): Displayed
com.android.systemui/.usb.UsbDebuggingActivity: +184ms
I/ActivityManager(2296): START u0 {act=android.intent.action.MAIN cat=
[android.intent.category.HOME] flg=0x10200000
cmp=com.android.launcher3/.Launcher} from uid 1000 on display 0
I/ActivityManager(2296): START u0
{act=com.REDACTED.auto.diagnostics.dealer.MAIN flg=0x10800000
cmp=com.REDACTED.auto.diagnostics/.dealer.MainActivity} from uid 1000 on
display 0
I/ActivityManager(2296): Start proc
20943:com.REDACTED.auto.diagnostics/1000 for activity
com.REDACTED.auto.diagnostics/.dealer.MainActivity
I/ActivityManager(2296): Displayed
com.REDACTED.auto.diagnostics/.dealer.MainActivity: +572ms
を使用してパッケージ名を取得しようとしましたか?私はlogcatダンプにリストされているすべてのパッケージ名を使ってみましたが、成功しませんでした。どんな入力も感謝します。