先贴代码
project1:
package com.android.intent.example;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;public class Project1Activity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Intent testActivityIntent = new Intent();  
    testActivityIntent.setClassName("com.android.intent.example","com.android.intent.example.Project2Activity");    
    startActivity(testActivityIntent); 
    }
}调用另外一个工程下的Project2Activity,Project2Activity只有个初始新建的显示一行字的功能,没做任何改动。因为是在不同的工程下,所以两个工程的xml我也没有做改动。这两个工程在2.2的虚拟机上运行正常,但是移植到3.0上却总是报错“The application Project1(process com.android.intent.android.example) has stopped unexpectedly,please try again”。刚开始接触android开发,望各位大虾帮帮忙啊

解决方案 »

  1.   

     Intent testActivityIntent = new Intent();   
    testActivityIntent.setClassName("com.android.intent.example","com.android.intent.example.Project2Activity");   
    startActivity(testActivityIntent);  
    你这样窗体能跳转?
      

  2.   

    你把这个Project2Activity的代码写出来看看。
      

  3.   

    ComponentName component =             new ComponentName("com.android.intent.example","com.android.intent.example.Project2Activity");      Intent intent = new Intent();      intent.setComponent(component);      startActivity(intent);
    lz要不试试这个看看
      

  4.   


    package com.android.SecondAndroid;import android.app.Activity;
    import android.os.Bundle;public class SecondAndroid extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    }一点儿没改
      

  5.   

    你确定 在2.2模拟器上执行了?而且进入了SecondAndroid  这个Activity?
      

  6.   

    你确定执行了并且进入SecondAndroid 这个Activity了?
      

  7.   


    额,不好意思,贴错了,这个是我又建了一个项目的,重新贴下:
    package com.android.intent.example;import android.app.Activity;
    import android.os.Bundle;public class Project2Activity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    }
      

  8.   

    你直接setClass 跳转不就OK了吗?
      

  9.   


    问题是两个Activity不在一个工程目录下
      

  10.   

    不在一个工程目录没事的,加上包名就行了。
    intent.setClassName(getApplicationContext(), "com.android.intent.example.Project2Activity.class");
      

  11.   

    .setClassName("com.android.intent.example","com.android.intent.example.Project2Activity");  是这个还是.setClassName("com.android.intent.example.Project1Activity","com.android.intent.example.Project2Activity");    
      

  12.   


    different android project 。
      

  13.   

    Intent i = new Intent();
    i.setAction("action.Project2Activity");
    startActivity(i);
    在你要触发的那个activity中设置intent-filer就行了
    像这样<activity android:name="Project2Activity"
                      android:label="@string/app_name">
      
                <intent-filter>
                    <action android:name="action.Project2Activity" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
                 
            </activity>这句代码不能丢了哦:<category android:name="android.intent.category.DEFAULT" />
      

  14.   

    这应该是两个独立的工程,应该不用改XML的东西把
      

  15.   

    做了一个可能可以解决问题的测试,我又重新建立一个工程,包名没有用com.***,而是自己随意定义了得一个包名,这次在3.0上跑通了。为了证明是不是这里的问题,我又建了一个一样的工程,包名又用了com.***,这次果然又报错了。。
    所以我在想是不是3.0以及以上版本里面com开头的包不能随便用。先这样吧。谢谢大伙,可以继续讨论讨论这个问题。
      

  16.   

    你的程序是没错的不过事打开已经安装在模拟器上的工程,所以你先执行下Project2Activity 在执行Project1Activity 应该就OK了。