2014-09-22 51 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。再次感谢你!