Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Kotlin-尝试在单击时从另一个应用打开一个应用_Android_Kotlin_Android Intent - Fatal编程技术网

Android Kotlin-尝试在单击时从另一个应用打开一个应用

Android Kotlin-尝试在单击时从另一个应用打开一个应用,android,kotlin,android-intent,Android,Kotlin,Android Intent,我有两个程序,动画和颜色选择器1。当我点击动画程序中的菜单项时,我试图打开ColorPicker1。总体目标是添加startActivityForResult,并将一些信息从ColorPicker1传递回动画程序,但目前我至少尝试让程序在不崩溃的情况下打开 在动画中,我已将ColorPicker1添加到我的清单文件中 <activity android:name=".MainActivity" android:label="@string/a

我有两个程序,动画和颜色选择器1。当我点击动画程序中的菜单项时,我试图打开ColorPicker1。总体目标是添加startActivityForResult,并将一些信息从ColorPicker1传递回动画程序,但目前我至少尝试让程序在不崩溃的情况下打开

在动画中,我已将ColorPicker1添加到我的清单文件中

<activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="com.example.colorpicker1.MainActivity" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
但是,当我点击菜单项访问ColorPicker1时,应用程序崩溃,我收到一个错误,即没有活动文件来处理该意图

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: android.matt.animation, PID: 12467
    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.colorpicker1.MainActivity }
        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1937)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1616)
        at android.app.Activity.startActivityForResult(Activity.java:4487)
        at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:67)
        at android.app.Activity.startActivityForResult(Activity.java:4445)
        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:720)
        at android.app.Activity.startActivity(Activity.java:4806)
        at android.app.Activity.startActivity(Activity.java:4774)
        at android.matt.animation.MainActivity.onOptionsItemSelected(MainActivity.kt:116)
        at android.app.Activity.onMenuItemSelected(Activity.java:3450)
        at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:368)
        at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:195)
        at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:108)
        at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:108)
        at android.support.v7.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:65)
        at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:202)
        at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:780)
        at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822)
        at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:171)
        at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:973)
        at android.support.v7.view.menu.MenuPopup.onItemClick(MenuPopup.java:127)
        at android.widget.AdapterView.performItemClick(AdapterView.java:318)
        at android.widget.AbsListView.performItemClick(AbsListView.java:1158)
        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3127)
        at android.widget.AbsListView$3.run(AbsListView.java:4042)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

[编辑] 下面是对我有用的答案。此外,我还必须使用物理手机进行测试,然后才能启动我的ColorPicker1应用程序。每当我在Android emulator上尝试时,动画应用程序都会因错误而继续崩溃

val launchColorPicker = packageManager.getLaunchIntentForPackage("com.example.colorpicker1")  as Intent
            startActivityForResult(launchColorPicker, 100)
在动画中,我已将ColorPicker1添加到我的清单文件中

<activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="com.example.colorpicker1.MainActivity" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
不,你没有。您已将
添加到动画应用程序中的现有活动中。这与ColorPicker1或任何其他应用程序无关

在菜单项click in Animations下,我使用了一个调用ColorPicker1的主要活动的意图

            access_colorpicker -> {
                cb!!.setStyle(ChalkBoard.COLORPICKER)
                val intent = Intent("com.example.colorpicker1.MainActivity")
                startActivity(intent)
                return true
            }
不,你没有。您创建了一个
意图
,引用了添加到动画应用程序中现有活动的动作。这与ColorPicker1或任何其他应用程序无关

但是,当我点击菜单项访问ColorPicker1时,应用程序崩溃,我收到一个错误,即没有活动文件来处理该意图

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: android.matt.animation, PID: 12467
    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.colorpicker1.MainActivity }
        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1937)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1616)
        at android.app.Activity.startActivityForResult(Activity.java:4487)
        at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:67)
        at android.app.Activity.startActivityForResult(Activity.java:4445)
        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:720)
        at android.app.Activity.startActivity(Activity.java:4806)
        at android.app.Activity.startActivity(Activity.java:4774)
        at android.matt.animation.MainActivity.onOptionsItemSelected(MainActivity.kt:116)
        at android.app.Activity.onMenuItemSelected(Activity.java:3450)
        at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:368)
        at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:195)
        at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:108)
        at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:108)
        at android.support.v7.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:65)
        at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:202)
        at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:780)
        at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822)
        at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:171)
        at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:973)
        at android.support.v7.view.menu.MenuPopup.onItemClick(MenuPopup.java:127)
        at android.widget.AdapterView.performItemClick(AdapterView.java:318)
        at android.widget.AbsListView.performItemClick(AbsListView.java:1158)
        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3127)
        at android.widget.AbsListView$3.run(AbsListView.java:4042)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

这是因为没有任何东西与
意图相匹配。您的
需要两个操作之一加上
启动器
类别。您的
意图
具有合适的操作,但未指定类别

如果将
LAUNCHER
类别添加到
Intent
,您应该能够启动动画应用程序的
MainActivity
的另一个副本。这与ColorPicker1或任何其他应用程序无关

当我点击动画程序中的菜单项时,我试图打开ColorPicker1

动画应用程序中的
意图
需要识别ColorPicker1应用程序中的活动。修改动画应用程序清单对此没有帮助。重要的是ColorPicker1应用程序清单中的内容

步骤1:在IDE或其他编辑器中打开ColorPicker1的清单

第二步:寻找你想要开始的活动

步骤3:查看该活动的


步骤4:在动画应用程序中,修改你的
意图
以匹配该
,并使用
setPackage()
意图
绑定到ColorPicker1应用程序的应用程序ID

以下是我的新意图信息的外观
访问\u colorpicker->{cb!!.setStyle(黑板.colorpicker)val Intent=Intent(“android.intent.action.MAIN”)intent.setPackage(“com.example.ColorPicker1”)startActivity(intent)return true}
但当我尝试访问
android.content.ActivityNotFoundException:未找到处理intent的活动{act=android.intent.action.MAIN pkg=com.example.ColorPicker1}
@ClarkeWoogner:您想要的活动上的
是否有一个
元素不是
默认值
?如果是,您的
意图也需要有这个类别。它有一个启动器类别。我如何将其添加到意图类别中?
@ClarkeWoogner:
Intent.setCategory(“android.intent.category.LAUNCHER”)
将是最直接的方式。在调用
startActivity()之前执行此操作。