2014-09-22 49 views
1

的另一個活動我有一個問題:我要開始從其他應用程序的活動,併爲我做了以下內容:無法啓動其他應用

public void startMyActivity(View view){ 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.setComponent(new ComponentName("com.package", "com.package.MyActivity")); 
    startActivity(intent); 
} 

但我得到的錯誤:無法找到明確的activity com.package/com.package.MyActivity。此外,我還將MyActivity聲明爲清單文件中的活動,並且仍然出現相同的錯誤。我究竟做錯了什麼?謝謝!

應用A(從中我要開始活動)的

清單文件:

<?xml version="1.0" encoding="utf-8"?> 

package="com.example.appA" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="15" 
    android:targetSdkVersion="21" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

,這是應用程序B的清單文件(其中包含應在活動啓動):

<?xml version="1.0" encoding="utf-8"?> 

package="com.mypackage.package.appB" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="16" 
    android:targetSdkVersion="16" /> 


<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 

    <activity 
     android:name="com.package.MyPackage" 
     android:label="@string/title" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

+2

它應該是'「com.packet」,「com.packet.MyActivity」' – 2014-09-22 13:06:13

+2

你有沒有加入'機器人:在MyActivity的清單文件中導出=「真」'?並確保包名稱正確 – 2014-09-22 13:06:28

+0

確實是包不包。這是一個錯誤,當我寫了這個問題,但在我的代碼中的包名稱,實際上洞的路徑是正確的。(我檢查了幾次) – 2014-09-22 13:09:10

回答

0

好了,所以我發現我的溶膠ution。這有點令人沮喪。所以..我嘗試了所有的想法,你們建議(我明白這一點),但沒有任何工作。所以我的想法引導我使用adb shell來查看它是如何命名的,並且我發現它不僅是com.package,而且是com.mypackage.package(名稱mypackage/pakcage不相關,只是例如目的)。之後,我檢查了應用程序B的清單,並看到「包」屬性的值爲com.mypackage.package。再次感謝你!

相關問題