繁体   English   中英

登录后使用意图打开新活动后应用崩溃

[英]App crashing after using intent to open a new activity after login

登录后,我一直试图让我的应用重定向到新活动,但几乎所有尝试都无济于事。 我还在论坛上检查了所有相关答案,但似乎无济于事。 任何帮助将不胜感激。

登录活动代码:

@Override
public void onSuccess(@NonNull final Credentials credentials) {
Intent i = new Intent(MainActivity.this, testactivity.class);
startActivity(i);

表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.auth0.samples">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:host="@string/auth0_domain"
                    android:pathPrefix="/android/com.auth0.samples/callback"
                    android:scheme="demo" />
            </intent-filter>
        </activity>
        <activity android:name="materialtabs.activity.SimpleTabsActivity" />
        <activity android:name=".testactivity"></activity>
    </application>
</manifest>

Test.java:

     package com.auth0.samples;

 import android.support.design.widget.TabLayout;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentPagerAdapter;
 import android.support.v4.view.ViewPager;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.support.v7.widget.Toolbar;

 import com.auth0.samples.fragments.OneFragment;
 import com.auth0.samples.fragments.ThreeFragment;
 import com.auth0.samples.fragments.TwoFragment;

 import java.util.ArrayList;
 import java.util.List;

 public class test extends AppCompatActivity {

     private Toolbar toolbar;
     private TabLayout tabLayout;
     private ViewPager viewPager;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_simple_tabs);

         toolbar = (Toolbar) findViewById(R.id.toolbar);
         setSupportActionBar(toolbar);

         viewPager = (ViewPager) findViewById(R.id.viewpager);
         setupViewPager(viewPager);

         tabLayout = (TabLayout) findViewById(R.id.tabs);
         tabLayout.setupWithViewPager(viewPager);
     }

     private void setupViewPager(ViewPager viewPager) {
         ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
         adapter.addFragment(new OneFragment(), "Notices");
         adapter.addFragment(new TwoFragment(), "Timetable");
         adapter.addFragment(new ThreeFragment(), "Homework");
         viewPager.setAdapter(adapter);
     }

     class ViewPagerAdapter extends FragmentPagerAdapter {
         private final List<Fragment> mFragmentList = new ArrayList<>();
         private final List<String> mFragmentTitleList = new ArrayList<>();

         public ViewPagerAdapter(FragmentManager manager) {
             super(manager);
         }

         @Override
         public Fragment getItem(int position) {
             return mFragmentList.get(position);
         }

         @Override
         public int getCount() {
             return mFragmentList.size();
         }

         public void addFragment(Fragment fragment, String title) {
             mFragmentList.add(fragment);
             mFragmentTitleList.add(title);
         }

         @Override
         public CharSequence getPageTitle(int position) {
             return mFragmentTitleList.get(position);
         }
     }
 }

在进一步排除故障后,我注意到该应用程序将重定向到空白活动,因此在test.java中必须正在调用某种使事情弄乱的东西。

欢迎使用,首先要注意以下几点:发布错误日志和更多相关代码。 在此示例中,在什么上下文下调用了onSuccess(...)。

现在回答您的问题,我认为它失败了,因为您的意图代码在onSuccess调用中。 您是否尝试过通过将startActivity移到onSuccess之外来进行调试? 让我们尝试最简单的测试,只需将意图代码移至MainActivity的onCreate即可。 这样可以使您的主要活动立即变为测试活动。 如果您的应用程序不执行此操作,则表明testactivity.java文件中有问题。 如果确实如此,则意味着您的onsuccess()存在问题。

通过执行上述简单的调试,您可以轻松隔离实际问题,从而解决问题。 以较小的增量步骤开始调试! 另外,如果您还没有的话,请参阅此处,以获取有关使用意图开始活动的更多详细信息。

编辑:谢谢,我看到了新代码,所以您的测试类称为test.java而不是testactivity.java? 然后,按照您的意图,目标应该是test.class。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM