【问题标题】:android app crashing on startActivity()android应用程序在startActivity()上崩溃
【发布时间】:2013-04-05 13:16:40
【问题描述】:

我已经启动了一个 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 发布堆栈跟踪

标签: java android xml android-intent


【解决方案1】:

这样写:

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>

【讨论】:

    【解决方案2】:

    对于那些来自 Google 的人,我试图在 putExtra 中传递大字符串(超过 90K 个符号),因此我的应用程序崩溃了。正确的解决方案是将字符串保存到文件或实现 Singleton。

    这里是相关链接Maximum length of Intent putExtra method? (Force close)

    【讨论】:

    • 在经历了同样的崩溃后,我通过 Google 偶然发现了您的帖子。显然,在我的情况下,崩溃是由NewActivity 继承AppCompatActivity(Android Studio 在创建新活动时默认添加)而MainActivity 继承Activity 引起的。一旦我将AppCompatActivityActivity 切换后,应用程序就会按预期工作。
    【解决方案3】:

    根据您的代码:如果我在我的项目中创建了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);
    

    在此处提问之前尝试一些谷歌搜索。你必须检查这个:Building Your First Android AppStarting Another Activity

    【讨论】:

      【解决方案4】:

      像这样开始新的活动:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多