Android 从另一个包启动活动

Android 从另一个包启动活动,android,android-intent,android-activity,packages,Android,Android Intent,Android Activity,Packages,我有一份清单: <manifest ... package="com.my"> <application ...> <activity ... android:name=".app.Run"> <intent-filter > <action android:name="android.intent.action.MAIN" /

我有一份清单:

<manifest ...
    package="com.my">

    <application ...>

        <activity ...
            android:name=".app.Run">
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    <activity ...
    android:name=".app.Preferences"/>

    <activity ...
    android:name=".library.error.ErrorDialog"/>

    </application>

</manifest>
<activity
    android:name="com.mycompany.mainapplication.package1.SecondActivity"
    android:label="Simple Math Questions" >
</activity>

不起作用


我有罪。。。我有罪…


我的
ErrorDialog
活动未公开:D

您可以使用以下代码:

Intent myIntent= new Intent(FirstActivity.this,SecondActivity.class); 
startActivity(myIntent);
如果一个类在另一个包中的同一个包中,则不会产生任何差异。只需确保导入该类即可

我在清单中使用了以下代码:

<manifest ...
    package="com.my">

    <application ...>

        <activity ...
            android:name=".app.Run">
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    <activity ...
    android:name=".app.Preferences"/>

    <activity ...
    android:name=".library.error.ErrorDialog"/>

    </application>

</manifest>
<activity
    android:name="com.mycompany.mainapplication.package1.SecondActivity"
    android:label="Simple Math Questions" >
</activity>

1。与应用程序清单文件相关

Manifest: 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  package="app.run"/> 
<activity android:name="app.run"/> 
<activity android:name="library.error.ErrorDialog"/>

package app.run  // Your Main Application Package Name

Activity:
Intent i = new Intent(); 
i.setClassName("app.run", "library.error.ErrorDialog"); //
startActivity(i); 
Intent intent = new Intent();
intent.setComponent(new ComponentName("packagename whos activity u want to launch","classname.java"));   
startActivity(intent); 

在您的情况下

Manifest: 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  package="app.run"/> 
<activity android:name="app.run"/> 
<activity android:name="library.error.ErrorDialog"/>

package app.run  // Your Main Application Package Name

Activity:
Intent i = new Intent(); 
i.setClassName("app.run", "library.error.ErrorDialog"); //
startActivity(i); 
Intent intent = new Intent();
intent.setComponent(new ComponentName("packagename whos activity u want to launch","classname.java"));   
startActivity(intent); 

创建两个不同的应用程序(包)后。转到第一个应用程序的清单文件并按如下方式编辑它:--

现在,这里传递到intent的第一个参数是第二个应用程序的包名,第二个参数是要打开的活动的名称。 就这样。
PS:运行第一个应用程序

我用Intent和setClass解决了这个问题

Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.setClassName("packagewheretheactivityyouwantcallis", "packagewheretheactivityyouwantcallis.ActivityYouWantCall");
            startActivity(intent);
不要忘记将您要调用的活动放入正在编写的活动清单中,如下所示:

<application 
....>
 <activity
        android:name="packagewheretheactivityyouwantcallis.ActivityYouWantCall">
    </activity> 
</application>


检查这一点可能会有所帮助:使用意图清单包是:“com.my”。这段代码很有用。尽管我们必须考虑空间限制。
<application 
....>
 <activity
        android:name="packagewheretheactivityyouwantcallis.ActivityYouWantCall">
    </activity> 
</application>