【发布时间】:2015-03-06 04:39:39
【问题描述】:
我正在尝试在 AOSP /frameworks/base/core/java/android/app 目录中添加我自己的 ConfirmDialog.java。稍后我需要从 /frameworks/base/core/java/android/my_module/my_class.java 启动 ConfirmDialog。 从my_class.java启动ConfirmDialog.java,代码sn -p如下:
Intent resolveActivityIntent = new Intent();
resolveActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
resolveActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION); // indicate target activity is not launched by user manually
ComponentName comp = new ComponentName("android.app", "android.app.ConfirmDialog");
resolveActivityIntent.setComponent(comp);
ActivityManagerNative.getDefault().startActivityAndWait(null, null, resolveActivityIntent, null, null, null, 0, resolveActivityIntent.getFlags(), null, null, null, UserHandle.USER_CURRENT);
AOSP 编译成功。但是,当调用“startActivityAndWait(...)”时,模拟器会崩溃,Logcat 会给我以下错误:
12-10 17:46:14.811: V/PackageManager(758): getActivityInfo ComponentInfo{android.app/android.app.DatePickerDialog}: null
12-10 17:46:14.831: E/AndroidRuntime(758): *** FATAL EXCEPTION IN SYSTEM PROCESS: PackageManager
12-10 17:46:14.831: E/AndroidRuntime(758): java.lang.NullPointerException: Attempt to read from field 'android.content.pm.ApplicationInfo android.content.pm.ComponentInfo.applicationInfo' on a null object reference
12-10 17:46:14.831: E/AndroidRuntime(758): at com.android.server.am.ActivityStackSupervisor.resolveActivity(ActivityStackSupervisor.java:599)
我猜这个错误弹出窗口是因为我没有在 *.mk 中成功注册 ConfirmDialog.java。不过不确定。我试图弄清楚如何使用同一目录中的其他类,但没有运气,我找不到任何类似用法的参考。谁有类似的经历,请帮帮我。谢谢
【问题讨论】:
标签: android android-activity android-source