Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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
Java 从一个包到另一个包启动活动_Java_Android_Android Activity - Fatal编程技术网

Java 从一个包到另一个包启动活动

Java 从一个包到另一个包启动活动,java,android,android-activity,Java,Android,Android Activity,我在不同的包裹里有不同的活动 假设我有两个包裹 ->com.pack1 ->com.pack2 我在pack1中有一个活动,想调用pack2中的另一个活动。我将如何做到这一点,使用意图显示 21:19:10.405:W/System.err(7578):android.content.ActivityNotFoundException:找不到显式活动类您在AndroidManifest.xml中声明了此活动吗? 请阅读错误 “您是否在AndroidManifest.xml中声明了此活动?”。包装

我在不同的包裹里有不同的活动

假设我有两个包裹 ->com.pack1 ->com.pack2

我在pack1中有一个活动,想调用pack2中的另一个活动。我将如何做到这一点,使用意图显示

21:19:10.405:W/System.err(7578):android.content.ActivityNotFoundException:找不到显式活动类您在AndroidManifest.xml中声明了此活动吗?

请阅读错误

“您是否在AndroidManifest.xml中声明了此活动?”。包装不会对一项活动和另一项活动造成问题。检查AndroidManifest.xml,确保活动在AndroidManifest中是declear

我认为问题的发生就是因为这个原因

谢谢。

请阅读错误

“您是否在AndroidManifest.xml中声明了此活动?”。包装不会对一项活动和另一项活动造成问题。检查AndroidManifest.xml,确保活动在AndroidManifest中是declear

我认为问题的发生就是因为这个原因


谢谢。

您需要确保在AndroidManifest.xml中声明活动,否则无法使用它

例如:

    <activity 
        android:name="com.yourpackage.YourActivity"
        android:launchMode="singleTop"
        android:configChanges="orientation"
     >
    </activity>

您需要确保在AndroidManifest.xml中声明活动,否则无法使用它

例如:

    <activity 
        android:name="com.yourpackage.YourActivity"
        android:launchMode="singleTop"
        android:configChanges="orientation"
     >
    </activity>

其他答案也是正确的。然而,这将在设备中的任何位置起作用

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

将其添加到xml的一部分

其他答案也是正确的。然而,这将在设备中的任何位置起作用

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>


将此添加到xml的一部分

确定,因此有两个部分共同定义
活动
位置。首先是
package
属性——它下面是“com.flipagain2”

还有
android:name
属性,例如
.FlipAgain2Activity.
所以,这意味着当Android查找您的活动时,它正在查找

com.flipagain2.FlipAgain2Activity.
有意义吗?把这两件事结合起来

所以,您希望活动包含在两个包中

将第二个(不工作的)更改为如下所示:

<activity android:name="com.package2.CaptureActivity" >
    <intent-filter>
        <action android:name="com.google.zxing.client.android.CaptureActivity" />
         <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>


看到我更改的内容了吗?保持第一个
活动
声明不变,但更改第二个
android:name=
以匹配包括包在内的完全限定名称。使用这种方法,每个活动都可以位于不同的包中。

好的,因此有两个部分共同定义
活动
location。首先是
属性——它下面是“com.flipagain2”

还有
android:name
属性,例如
.FlipAgain2Activity.
所以,这意味着当Android查找您的活动时,它正在查找

com.flipagain2.FlipAgain2Activity.
有意义吗?把这两件事结合起来就行了

所以,您希望活动包含在两个包中

将第二个(不工作的)更改为如下所示:

<activity android:name="com.package2.CaptureActivity" >
    <intent-filter>
        <action android:name="com.google.zxing.client.android.CaptureActivity" />
         <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>


您看到我更改的内容了吗?保持第一个
活动
声明不变,但更改第二个
android:name=
以匹配包括包在内的完全限定名称。使用此方法,每个活动都可以位于不同的包中。

通常活动对其包是私有的。您无法启动活动在另一个包中,除非该活动已明确“导出”(即:其他应用程序知道)。将此添加到com.pack2中FlipAgain2Activity的清单中:

android:exported="true"

通常情况下,活动对其包是私有的。除非明确“导出”了另一个包中的活动(即:向其他应用程序公开),否则无法启动该活动。请将此添加到com.pack2中FlipAgain2Activity的清单中:

android:exported="true"

发布manifest.xml,这就是问题所在。一旦发布,我(或其他人)可以向您显示有许多包声明。@edthird manifest文件:发布manifest.xml,这就是问题所在。一旦发布,我(或其他人)可以显示有许多包声明。@edthird清单文件:使用上述代码后,它不会显示任何错误或警告,但甚至不会加载活动,它显示以下内容
06-28 21:39:30.389:I/WindowManager(190):createSurface窗口{41b19380 Toast paused=false}:DRAW NOW PENDING
是否用软件包替换了软件包?是否调用了
startActivity(i)
?哎呀!很抱歉忘记了,现在这样做之后,它会显示与上面相同的错误。我的Manifest.xml文件:如果我在使用上述代码后包括我将有两个启动程序活动,它不会显示任何错误或警告,但它甚至不会加载活动,它会显示以下内容
06-28 21:39:30.389:I/WindowManager(190):createSurface窗口{41b19380 Toast paused=false}:DRAW NOW PENDING
是否用包替换包?是否调用了
startActivity(i)
?哎呀!很抱歉忘记了,现在这样做之后,它显示了与上面相同的错误。我的Manifest.xml文件:如果我包括这一点,我将有两个启动器活动实现上面显示的
06-28 21:52:33.694:E/AndroidRuntime(8324):java.lang.RuntimeException:无法恢复活动{com.flipagain2/com.google.zxing.client.android.CaptureActivity}:android.content.res.Resources$NotFoundException:String resource ID#0x7f090039
实现上面显示的
06-28 21:52:33.694:E/AndroidRuntime(8324):java.lang.RuntimeException:无法恢复活动{com.flipagain2/com.google.zxing.client.android.CaptureActivity}:android.content.res.Resources$NotFoundException:String resource ID#0x7f090039
实现了上述代码