Java 启动3d派对应用程序后崩溃,该应用程序崩溃后

Java 启动3d派对应用程序后崩溃,该应用程序崩溃后,java,android,Java,Android,在我的应用程序中,我在设备上启动其他应用程序,如下所示: Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(packageName); if (LaunchIntent == null) return; LaunchIntent.addCategory(Intent.CATEGORY_LAUNCHER); LaunchIntent.setAction(Intent.ACTION_

在我的应用程序中,我在设备上启动其他应用程序,如下所示:

    Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(packageName);
    if (LaunchIntent == null) return;
    LaunchIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    LaunchIntent.setAction(Intent.ACTION_MAIN);
    LaunchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    startActivity(LaunchIntent);
在执行的应用程序崩溃之前,一切正常。在这种情况下,我的应用程序也会强制关闭

01-06 20:13:00.796    4560-4560/com.example.android.trivialdrivesample E/AndroidRuntime: FATAL EXCEPTION: main
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.trivialdrivesample/com.example.android.trivialdrivesample.MainActivity}: java.lang.RuntimeException: Please change the sample's package name! See README.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
        at android.app.ActivityThread.access$1500(ActivityThread.java:117)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:130)
        at android.app.ActivityThread.main(ActivityThread.java:3683)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:507)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:850)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: java.lang.RuntimeException: Please change the sample's package name! See README.
        at com.example.android.trivialdrivesample.MainActivity.onCreate(MainActivity.java:146)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
        ... 11 more
01-06 20:13:00.804    1386-1520/?                              W/ActivityManager: Force finishing activity com.example.android.trivialdrivesample/.MainActivity
01-06 20:13:00.804    1386-1520/?                              W/ActivityManager: Force finishing activity com.digitalmediarevolutions.kfmobiledesktop/.activities.MainActivity
我应该如何防止强制关闭我的应用程序

新项目

要将应用内计费版本3库添加到新的应用内计费项目,请执行以下操作:

将示例文件复制到Android项目中。 修改复制的文件中的包名称,以便为项目使用包名称。在Eclipse中,您可以使用以下快捷方式:右键单击包名,然后选择重构>重命名

如果要使用
sample
sample,必须更改包名。上面的代码片段是这么说的,而你的logcat也是这么说的

顺便说一句,从logcat中编辑出对
drive
的引用是没有意义的。如果你要发布日志,不要将其编辑成其他内容

更新

好吧,我现在更明白你的要求了。我认为问题可能在于您在意向上设置操作/标志/等的方式。我没有看到任何明显的错误,但是方法
getLaunchIntentForPackage()
()为您设置了这些内容,所以您不必这样做。如果删除
addCategory()
setAction()
setFlags()
调用,是否仍会发生相同的情况?如果您仍然需要
活动\u重置任务\u如果需要
标志,可以使用
addFlags()
将其添加到中,但我会先尝试不使用它

但这很奇怪<代码>活动\新任务应该可以防止此类事件发生

新项目

要将应用内计费版本3库添加到新的应用内计费项目,请执行以下操作:

将示例文件复制到Android项目中。 修改复制的文件中的包名称,以便为项目使用包名称。在Eclipse中,您可以使用以下快捷方式:右键单击包名,然后选择重构>重命名

如果要使用
sample
sample,必须更改包名。上面的代码片段是这么说的,而你的logcat也是这么说的

顺便说一句,从logcat中编辑出对
drive
的引用是没有意义的。如果你要发布日志,不要将其编辑成其他内容

更新

好吧,我现在更明白你的要求了。我认为问题可能在于您在意向上设置操作/标志/等的方式。我没有看到任何明显的错误,但是方法
getLaunchIntentForPackage()
()为您设置了这些内容,所以您不必这样做。如果删除
addCategory()
setAction()
setFlags()
调用,是否仍会发生相同的情况?如果您仍然需要
活动\u重置任务\u如果需要
标志,可以使用
addFlags()
将其添加到中,但我会先尝试不使用它


但这很奇怪<代码>活动\u新任务应该可以防止这种事情发生。

我知道这篇文章在13'上,但要继续回答,就要删除你主要活动上的代码

  if (base64EncodedPublicKey.contains("CONSTRUCT_YOUR")) {
        throw new RuntimeException("Please put your app's public key in MainActivity.java. See README.");
    }
    if (getPackageName().startsWith("com.example")) {
        throw new RuntimeException("Please change the sample's package name! See README.");
    }

关于,

我知道这篇文章在13'上,但要继续回答这个问题,就要删除你主要活动中的代码

  if (base64EncodedPublicKey.contains("CONSTRUCT_YOUR")) {
        throw new RuntimeException("Please put your app's public key in MainActivity.java. See README.");
    }
    if (getPackageName().startsWith("com.example")) {
        throw new RuntimeException("Please change the sample's package name! See README.");
    }

请注意,

对于稍后来到这里的人,以及希望使用不同软件包的人(我在GoogleTrial示例项目中也遇到了这个问题)

您是否已将Gradle.build文件中的applicationID重命名为包名

如果上面的提示不起作用:在Android Studio=>中,只需使用编辑->在路径中查找->包名来更改(包的剩余部分存在于项目中的某个位置,您将找到可以更改它的位置)

PS
TechLutiers的简单示例解决方案适用于在本地设备上运行,但Google Play控制台中不允许使用com.example,所以最好正确使用它

适用于晚到这里的人,以及希望使用不同软件包的人(我在GoogleLittle示例项目中也遇到了这个问题)

您是否已将Gradle.build文件中的applicationID重命名为包名

如果上面的提示不起作用:在Android Studio=>中,只需使用编辑->在路径中查找->包名来更改(包的剩余部分存在于项目中的某个位置,您将找到可以更改它的位置)

PS
TechLutiers的简单示例解决方案适用于在本地设备上运行,但Google Play控制台中不允许使用com.example,所以最好正确使用它

从logcat:
请更改样本的包名!请参阅自述。
它与另一个应用程序相关,而不是来自logcat的My:
请更改示例的软件包名称!请参阅自述。
它与另一个应用程序相关,而不是My,我不想处理这个示例,它只是应用程序在启动时崩溃。我需要知道为什么我的应用程序运行的琐碎驱动器也完成了。我不知道我明白你想要什么。您的应用程序正在调用TrialDrive(无论是单独调用还是通过另一个程序包调用)。无法使用其默认包名运行该驱动器。这就是造成这次事故的原因。不要运行它,或者更改它的包名。谢谢您的回答。你说得对。不管发生了什么。我的应用程序没有启动功能,应该可以启动安装在用户设备上的应用程序。我使用的测试设备与驱动器应用程序。因此,如果设备上安装了任何不正确的应用程序,这种情况都可能发生。问题是,若启动的第三部分应用程序因任何原因崩溃,为什么我的应用程序会结束。我不想处理这个琐碎的问题,它只是在启动时崩溃的应用程序。我需要知道为什么我的应用程序运行的琐碎驱动器也完成了。我不知道我明白你想要什么。您的应用程序正在调用驱动器(无论是单独调用还是通过其他应用程序调用)