2012-04-13 44 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

相關問題