【问题标题】:intent does not launch any activity意图不启动任何活动
【发布时间】:2014-03-02 17:17:40
【问题描述】:

在我的%MainActivity 我有这个

protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

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

        ....
    }

事实上,意图是由一些身份验证检查包装的,但为了调试我删除了它,但这种方法不会启动任何LoginSignupActivity。有人可以帮忙吗?

编辑:

这是整个 onCreate 方法

protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent intent = new Intent(MainActivity.this,
                LoginSignupActivity.class);
        startActivity(intent);

        setActionBarListNavigation();
        setupDrawer();
        setupContainer();
    }

MainActivity extends CustomActivity(从AsyncLoader 获取数据),最后一个Activity 继承自FragmentActivity 并有一个onCreate 方法

protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        theme = getAppTheme();
        setupActionBar();
    }

protected void setupActionBar()
    {
        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);

        getActionBar().setBackgroundDrawable(getResources().getDrawable(theme));
    }

终于

【问题讨论】:

  • 您是否遇到任何错误/崩溃?
  • @Elenasys 当然我的清单中有<activity android:name=".authenticator.LoginSignupActivity"> </activity>
  • 题外话:你真的不应该对所有事情都回答“当然”,这可能会显得粗鲁。 On-topic:是否有任何错误或什么都不做?如果它没有崩溃,那么您可能需要在onCreate() 中显示更多代码。另外,您是否在下一个Activity 中设置了断点以确保它不会因为某种原因开始然后结束?
  • 其实我自己也很好奇。我猜是因为您一开始并没有发布太多信息,而且您确实拥有startActivity(),所以也许人们认为您没有进行研究。我认为它不应该被否决,但没有人问我。我们会看看我们是否可以平衡一下
  • 回到 IntelliJ 可能是明智的。我自己从未使用过它,但 AS 是基于它的,所以请继续使用它,直到 AS 至少发布 v.1.0 并且您过渡到它应该相当容易。

标签: java android android-intent android-studio


【解决方案1】:
protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

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

在 manifest.xml 中注册您的所有活动

<activity android:name=".LoginSignupActivity"/>

刚刚遇到这个问题,我需要将我的自定义 jar library 添加到 build.gradle 文件中:

dependencies {
    compile files('libs/android-support-v4.jar')
    ADD FILE HERE   
}


/**
 * A {@code TaskSelectionException} is thrown when the tasks to execute cannot be selected due to some user input
 * problem.
 */
public class TaskSelectionException extends InvalidUserDataException {
    public TaskSelectionException(String message) {
        super(message);
    }
}

【讨论】:

  • 抱歉打错了。当然,除了我放 startActivity(intent); 之外它不起作用!
  • 根据您的帖子,这两个原因很重要...否则发布您的完整代码
  • 对不起,我是android-studio 的新手。所以,我的应用程序运行正常(除了它不显示登录屏幕)。但是当我启动gradle compileDebug --stacktrace 时,我收到了这个错误org.gradle.execution.TaskSelectionException: Task 'compileDebug' is ambiguous in root project 'Feeder'。你怎么解释呢!
  • 我认为这与pb的意图无关,因为我删除了onCreate方法中的所有内容,你猜怎么着,项目编译并在模拟器中运行良好。我认为是一些缓存问题,不是吗?
【解决方案2】:

添加:startActivity(intent);

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

并将 LoginSignupActivity 添加到您的 Manifest.xml 中

 <activity
            android:name=".LoginSignupActivity"
            android:label="Login" >

【讨论】:

    【解决方案3】:

    您在“onCreate”期间启动了一个 Activity - 您将看不到您的主要 Activity(它永远不会到达“onStart”或“onResume”)。

    因此,如果您遇到问题,则不在您的 MainActivity 中,而在另一个 LoginSignupActivity 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多