2012-04-13 91 views
0

所以我有一个应用程序,其默认包为com.android在另一个包中调用活动

在这个包内我有两个包android.audioandroid.video

现在我需要拨打activity1android.audioactivity2android.video

我一直在使用类似

Intent i = new Intent(); 
i.setClassName("android.video","android.audio.activity1"); 
startActivity(i); 

尝试,但这个似乎没有工作。 什么是正确的做法?我哪里出错了? 我不能导航到包之外的任何活动。编辑: 这是它在清单中声明的​​方式。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.android" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO"/> 
<uses-permission android:name="android.permission.RECORD_VIDEO" /> 
<uses-permission android:name="android.permission.CAMERA"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

<uses-sdk android:minSdkVersion="8" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_title" > 
    <activity 
     android:label="@string/app_title" 
     android:name=".WeaveActivity" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name="android.login.LoginActivity"></activity> 
    <activity android:name="android.login.RegisterActivity"></activity> 

    <activity android:name="android.video.activity2"></activity> 

    <activity android:name="android.audio.activity1"></activity> 

</application> 

+0

包是指java包还是不同的apk? – Selvin 2012-04-13 17:56:36

+0

相同的apk不同的包。 – 2012-04-13 18:01:49

+0

所以agarwal的答案是正确的...你刚刚在AndeoidManifest.xml中犯了错误 – Selvin 2012-04-13 18:03:47

回答

0

我通过给项目包名称为com.android和其他子包为com.android.audiocom.android.video的重写我的整个包装结构“音频”,现在它似乎工作。感谢你的帮助。

3
Intent i = new Intent(); 
i.setClassName(activity2.this,activity1.class); 
startActivity(i); 

使用上面的代码,并在你的manifeast文件中添加这些活动。 照你说你包的名字是com.android

<activity android:name=".audio.activity1"></activity> 
<activity android:name=".video.activity2"></activity> 

或你永远不可能用你的包名作为com.android使用如下

<activity android:name="com.android.audio.activity1"></activity> 
<activity android:name="com.android.video.activity2"></activity> 

和一个小建议,完整路径,因为如果再使用在将应用提交给Google Play时,它不会接受它,因为com.android包是用于android SDK的。

+0

它仍然强制关闭错误'android.content.ActivityNotFoundException:无法找到显式活动类{com.android/android.audi。活动1};你有没有在你的AndroidManifest.xml中声明这个活动?' 我已经在清单中声明了它为'android.audio.activity1'和'android.video.activity2' – 2012-04-13 17:55:37

+0

你可以粘贴你的文件文件 – 2012-04-13 17:58:02

+1

你有没有添加.audio。 activity1在显示文件中这个错误会导致如果你不会添加或添加错误的方式然后 – 2012-04-13 17:59:03

0
in manifest decalre like 

<activity android:name=”.activity1” android:label=”Activity 1”> <intent-filter> <action android:name=”android.audio.activity1”/> <category android:name=”android.intent.category.DEFAULT”/> </intent-filter> </activity>

,并同时从任何活动呼唤...... startActivity(new Intent(“android.audio.activity1”)); 希望这将有助于。

0

检查您的软件包名称。

我想你只给了“奥迪”,而不是

+0

这是我在复制粘贴过程中发生的错误。为此道歉。 – 2012-04-13 18:17:49

相关问题