安卓应用在执行startActivity()时崩溃了。

9

我已经启动了一个Intent并请求它转到主活动,但是当它尝试时应用程序崩溃。

以下是尝试转到主活动的代码。

Intent i = new Intent(
".MAIN_ACTIVITY");
startActivity(i);   

这是Main_Activity的XML清单文件。
<activity
    android:name=".MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN_ACTIVITY" />

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

我对此还比较新,任何帮助和/或建议都非常有价值。


请在Logcat中发布堆栈跟踪。 - Sankar V
4个回答

26

写出以下的代码:

Intent i = new Intent(MainActivity.this, NewActivity.class);
startActivity(i);

同时,您需要在清单文件中声明这两个活动类,如下所示:

<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
    <action android:name="android.intent.action.MAIN_ACTIVITY" />

    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
    android:name=".NewActivity"
    android:label="@string/app_name" >
</activity>

4
对于那些来自Google的人,我试图在putExtra中传递大字符串(超过90K个符号),我的应用程序因此崩溃。正确的解决方案是将字符串保存到文件中或实现Singleton。
这里是相关链接:Intent putExtra方法的最大长度?(强制关闭)

我通过谷歌偶然看到了您的帖子,因为我遇到了相同的崩溃问题。显然,在我的情况下,崩溃是由于“NewActivity”继承“AppCompatActivity”(在创建新活动时默认由Android Studio添加),而“MainActivity”继承“Activity”引起的。一旦我将“AppCompatActivity”与“Activity”交换,应用程序按预期工作。 - RAM

2
根据您的代码:如果我在我的项目中创建了newActiviy,那么:
我必须将该活动添加到Android清单文件中。
例如:
<activity
    android:name=".MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN_ACTIVITY" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    <activity android:name=".newActivity"></activity>
</activity>

要调用该活动,只需执行以下操作:

Intent intent = new Intent(MainActivity.this, newActivity.class);
    startActivity(intent);

在您提问前,请先尝试通过谷歌搜索解决问题。同时,您必须检查以下链接:创建您的第一个Android应用启动另一个活动。请注意保留HTML标签。

0

像这样启动新的Activity:

Intent intent = new Intent(YourCurrentActivity.this, TargetActivity.class);
    startActivity(intent);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接