Android 第二届Aapp会议开幕';比活度
我有两个应用程序Android 第二届Aapp会议开幕';比活度,android,android-intent,Android,Android Intent,我有两个应用程序App1和App2,我想从App1打开App2的第三个活动,我还想在应用程序之间传递一些值。我该怎么做 我试过这个: Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.aap2.MainActivity3"); startActivity(LaunchIntent); 但我有个例外 01-23 00:18:04.150: E/AndroidRuntime(5323
App1
和App2
,我想从App1
打开App2
的第三个活动,我还想在应用程序之间传递一些值。我该怎么做
我试过这个:
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.aap2.MainActivity3");
startActivity(LaunchIntent);
但我有个例外
01-23 00:18:04.150: E/AndroidRuntime(5323): java.lang.IllegalStateException: Could not execute method of the activity
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.view.View$1.onClick(View.java:2144)
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.view.View.performClick(View.java:2485)
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.view.View$PerformClick.run(View.java:9080)
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.os.Handler.handleCallback(Handler.java:587)
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.os.Handler.dispatchMessage(Handler.java:92)
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.os.Looper.loop(Looper.java:130)
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.app.ActivityThread.main(ActivityThread.java:3714)
01-23 00:18:04.150: E/AndroidRuntime(5323): at java.lang.reflect.Method.invokeNative(Native Method)
01-23 00:18:04.150: E/AndroidRuntime(5323): at java.lang.reflect.Method.invoke(Method.java:507)
01-23 00:18:04.150: E/AndroidRuntime(5323): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
01-23 00:18:04.150: E/AndroidRuntime(5323): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
01-23 00:18:04.150: E/AndroidRuntime(5323): at dalvik.system.NativeStart.main(Native Method)
01-23 00:18:04.150: E/AndroidRuntime(5323): Caused by: java.lang.reflect.InvocationTargetException
01-23 00:18:04.150: E/AndroidRuntime(5323): at java.lang.reflect.Method.invokeNative(Native Method)
01-23 00:18:04.150: E/AndroidRuntime(5323): at java.lang.reflect.Method.invoke(Method.java:507)
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.view.View$1.onClick(View.java:2139)
01-23 00:18:04.150: E/AndroidRuntime(5323): ... 11 more
01-23 00:18:04.150: E/AndroidRuntime(5323): Caused by: java.lang.NullPointerException
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1374)
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.app.Activity.startActivityForResult(Activity.java:2827)
01-23 00:18:04.150: E/AndroidRuntime(5323): at android.app.Activity.startActivity(Activity.java:2933)
01-23 00:18:04.150: E/AndroidRuntime(5323): at com.example.aap1.MainActivity1.one(MainActivity1.java:27)
使用
有用资源
您需要将活动声明作为(第二个应用程序)写入清单
//添加意图过滤器(如果有)。
使用
有用资源
您需要将活动声明作为(第二个应用程序)写入清单
//添加意图过滤器(如果有)。
问题就在这里
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.aap2.MainActivity3");
在这里,您必须传递packagename
,但您要传递的是Activity
name.。上述操作也将返回您在清单文件中设置的启动器活动
为此,您需要像这样更改代码
Intent i = new Intent();
i.setClassName("com.example.aap2", "com.example.aap2.MainActivity3");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
并在清单中为MainActivity3
设置android:export=“true”
。问题就在这里
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.aap2.MainActivity3");
在这里,您必须传递packagename
,但您要传递的是Activity
name.。上述操作也将返回您在清单文件中设置的启动器活动
为此,您需要像这样更改代码
Intent i = new Intent();
i.setClassName("com.example.aap2", "com.example.aap2.MainActivity3");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
并在清单中为
MainActivity3
设置android:export=“true”
。仅当您不知道活动名称,并且没有像以前那样在其中传递活动名称时才使用此选项
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.aap2");
否则只需尝试以下方法,打开另一个活动的常用方法是
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
startActivity(intent);
仅当您不知道活动名称时才使用此选项,并且不要像以前那样在其中传递活动名称
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.aap2");
否则只需尝试以下方法,打开另一个活动的常用方法是
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
startActivity(intent);
请添加您的异常日志和您的问题。我添加了异常日志请添加您的异常日志和您的问题。我再次添加了异常日志我收到异常。除了活动之外,我是否应该向清单中添加其他内容?01-23 00:37:09.670:E/AndroidRuntime(5518):原因:java.lang.SecurityException:权限拒绝:从进程记录{408dbff8 5518:com.example.aap1/10045}(pid=5518,uid=10045)中启动意图{flg=0x10000000 cmp=com.example.aap2/.MainActivity3}需要null@Reshmy签入第二个应用程序的活动声明。确保你做了android:exported=“true”。我是从第二个答案中得到的。非常感谢您的支持,我有个例外。除了活动之外,我是否应该向清单中添加其他内容?01-23 00:37:09.670:E/AndroidRuntime(5518):原因:java.lang.SecurityException:权限拒绝:从进程记录{408dbff8 5518:com.example.aap1/10045}(pid=5518,uid=10045)中启动意图{flg=0x10000000 cmp=com.example.aap2/.MainActivity3}需要null@Reshmy签入第二个应用程序的活动声明。确保你做了android:exported=“true”。我是从第二个答案中得到的。非常感谢您的支持