Деятельность, которую я пытаюсь запустить, приводит к сбою приложения, но без ошибок? (Android Studio) - PullRequest
0 голосов
/ 30 апреля 2018

Вот мой код действия, которое я хочу запустить первым:

package com.example.adamf.authtest;

import android.content.Intent;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Html;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import org.w3c.dom.Text;

public class SplashActivity extends AppCompatActivity {

private ViewPager mSlidePager;
private LinearLayout mDotLayout;

private Button mNextBtn;
private Button mBackBtn;

private TextView[] mDots;

private SliderAdapter sliderAdapter;

private int mCurrentPage;
private int Check = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); setTheme(R.style.NoActionBarCustom);
    setContentView(R.layout.activity_splash);

    mSlidePager = (ViewPager) findViewById(R.id.slideViewPager);
    mDotLayout = (LinearLayout) findViewById(R.id.dotsLayout);

    mNextBtn = (Button) findViewById(R.id.nextBtn);
    mBackBtn = (Button) findViewById(R.id.prevBtn);

    sliderAdapter = new SliderAdapter(this);
    mSlidePager.setAdapter(sliderAdapter);

    addDotsIndicator(0);

    mSlidePager.addOnPageChangeListener(viewListener);

    //OnClickListeners
    mNextBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mSlidePager.setCurrentItem(mCurrentPage + 1);

            Check = Check + 1;
            if(Check == 3)
            {
                Intent intent = (new Intent(SplashActivity.this, LoginActivity.class));
                startActivity(intent);
            }
        }
    });

    mBackBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Check = Check -1;
            mSlidePager.setCurrentItem(mCurrentPage - 1);
        }
    });
}

public void addDotsIndicator(int position){

    mDots = new TextView[3];
    mDotLayout.removeAllViews();

    for(int i = 0; i < mDots.length; i++)
    {
        mDots[i] = new TextView(this);
        mDots[i].setText(Html.fromHtml("&#8226"));
        mDots[i].setTextSize(35);
        mDots[i].setTextColor(getResources().getColor(R.color.colorTransparentWhite));
        mDotLayout.addView(mDots[i]);
    }

    if(mDots.length > 0)
    {
        mDots[position].setTextColor(getResources().getColor(R.color.colorWhite));
    }
}

ViewPager.OnPageChangeListener viewListener = new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int i, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int i) {
        addDotsIndicator(i);
        mCurrentPage = i;

        if(i == 0){
            mNextBtn.setEnabled(true);
            mBackBtn.setEnabled(false);
            mBackBtn.setVisibility(View.INVISIBLE);

            mNextBtn.setText("NEXT");
            mBackBtn.setText("");
        }
        else if (i == mDots.length -1)
        {
            mNextBtn.setEnabled(true);
            mBackBtn.setEnabled(true);
            mBackBtn.setVisibility(View.VISIBLE);

            mNextBtn.setText("FINISH");
            mBackBtn.setText("BACK");
        }
        else
        {
            mNextBtn.setEnabled(true);
            mBackBtn.setEnabled(true);
            mBackBtn.setVisibility(View.INVISIBLE);

            mNextBtn.setText("NEXT");
            mBackBtn.setText("BACK");
        }

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
};

}

Мой файл AndroidManifest.XML выглядит так:

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

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

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_appiconhhh_round"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_appiconhhh"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".SplashActivity"
        android:theme="@style/NoActionBarCustom" android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".LoginActivity" android:exported="true"/>
    <activity android:name=".ClientInfo" android:exported="true"/>
    <activity android:name=".ClientEditInfo" android:exported="true"/>
    <activity android:name=".CalendarActivity" android:exported="true"/>
</application>

slide_layout.xml выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:id="@+id/slide_image"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_marginTop="50dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    app:srcCompat="@drawable/calen_icon" />

<TextView
    android:id="@+id/slide_heading"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:layout_below="@+id/slide_image"
    android:layout_centerHorizontal="true"
    android:text="HEADING"
    android:textSize="30dp"/>

<TextView
    android:id="@+id/slide_description"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/slide_heading"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp"
    android:paddingLeft="40dp"
    android:paddingRight="40dp"
    android:text="bunch of efhdfkfhdf this h eherkjeh this is whereh te 
description will go"
    android:textAlignment="center"
    android:textSize="20dp" />

</RelativeLayout>

activity_splash.xml выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:id="@+id/slide_image"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_marginTop="50dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    app:srcCompat="@drawable/calen_icon" />

<TextView
    android:id="@+id/slide_heading"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:layout_below="@+id/slide_image"
    android:layout_centerHorizontal="true"
    android:text="HEADING"
    android:textSize="30dp"/>

<TextView
    android:id="@+id/slide_description"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/slide_heading"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp"
    android:paddingLeft="40dp"
    android:paddingRight="40dp"
    android:text="bunch of efhdfkfhdf this h eherkjeh this is whereh te 
description will go"
    android:textAlignment="center"
    android:textSize="20dp" />

</RelativeLayout>

Я пытаюсь запустить приложение с помощью этого заставки, а затем перейти на мою страницу входа в систему, но как только действие называется приложением, происходит сбой, и я понятия не имею, почему. Я не получаю ошибок в консоли, и я скопировал этот код из другого моего приложения, которое работает абсолютно нормально. Я попытался перенаправить свою регистрационную активность на экран-заставку, а также сначала запустить экран-заставку, но как только его назвали, приложение вылетает.

У меня вопрос, может ли кто-нибудь найти что-то не так с этим кодом и, возможно, с проблемой, почему он не запускается?

Я пытался использовать эмулятор так же, как и мой телефон, но происходит то же самое, поэтому он должен быть связан с кодом ...

Спасибо

EDIT:

Ошибка Logcat:

04-30 13:45:35.957 26651-26651/? E/Zygote: isWhitelistProcess - Process is 
Whitelisted
04-30 13:45:35.961 26651-26651/? W/SELinux: SELinux selinux_android_compute_policy_index : Policy Index[2],  Con:u:r:zygote:s0 RAM:SEPF_SM-G955F_8.0.0_0002, [-1 -1 -1 -1 0 1]
04-30 13:45:35.961 26651-26651/? I/SELinux: SELinux: seapp_context_lookup:     seinfo=untrusted, level=s0:c512,c768, pkgname=com.example.adamf.authtest 
04-30 13:45:35.965 26651-26651/? I/zygote64: Late-enabling -Xcheck:jni
04-30 13:45:36.028 26651-26651/? D/ActivityThread: Added TimaKeyStore provider
04-30 13:45:36.242 26651-26676/com.example.adamf.authtest I/vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib64/egl/libGLES_mali.so from the current namespace instead.
04-30 13:45:36.263 26651-26676/com.example.adamf.authtest D/libEGL: loaded /vendor/lib64/egl/libGLES_mali.so
04-30 13:45:36.310 26651-26651/com.example.adamf.authtest D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
04-30 13:45:36.354 26651-26651/com.example.adamf.authtest V/FA: Registered activity lifecycle callback
04-30 13:45:36.355 26651-26651/com.example.adamf.authtest I/FirebaseInitProvider: FirebaseApp initialization successful
04-30 13:45:36.358 26651-26651/com.example.adamf.authtest I/InstantRun: starting instant run server: is main process
04-30 13:45:36.381 26651-26681/com.example.adamf.authtest V/FA: Cancelling job. JobID: -1634935714
04-30 13:45:36.397 26651-26681/com.example.adamf.authtest V/FA: Collection enabled
04-30 13:45:36.397 26651-26681/com.example.adamf.authtest V/FA: App package, google app id: com.example.adamf.authtest, 1:710221974396:android:d5035470e16ba2b6
04-30 13:45:36.399 26651-26681/com.example.adamf.authtest I/FA: App measurement is starting up, version: 12211
04-30 13:45:36.399 26651-26681/com.example.adamf.authtest I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
04-30 13:45:36.399 26651-26681/com.example.adamf.authtest I/FA: To enable faster debug mode event logging run:
                                                              adb shell setprop debug.firebase.analytics.app com.example.adamf.authtest
04-30 13:45:36.399 26651-26681/com.example.adamf.authtest D/FA: Debug-level message logging enabled
04-30 13:45:36.427 26651-26681/com.example.adamf.authtest V/FA: Connecting to remote service
04-30 13:45:36.439 26651-26681/com.example.adamf.authtest V/FA: Connection attempt already in progress
04-30 13:45:36.439 26651-26651/com.example.adamf.authtest V/FA: onActivityCreated
04-30 13:45:36.536 26651-26657/com.example.adamf.authtest I/zygote64: Do partial code cache collection, code=17KB, data=13KB
04-30 13:45:36.536 26651-26657/com.example.adamf.authtest I/zygote64: After code cache collection, code=17KB, data=13KB
04-30 13:45:36.536 26651-26657/com.example.adamf.authtest I/zygote64: Increasing code cache capacity to 128KB
04-30 13:45:36.546 26651-26657/com.example.adamf.authtest I/zygote64: Do partial code cache collection, code=23KB, data=15KB
04-30 13:45:36.546 26651-26657/com.example.adamf.authtest I/zygote64: After code cache collection, code=23KB, data=15KB
04-30 13:45:36.546 26651-26657/com.example.adamf.authtest I/zygote64: Increasing code cache capacity to 256KB
04-30 13:45:36.546 26651-26657/com.example.adamf.authtest I/zygote64: Method exceeds compiler instruction limit: 25337 in void org.ccil.cowan.tagsoup.HTMLSchema.<init>()
04-30 13:45:36.565 26651-26681/com.example.adamf.authtest V/FA: Connection attempt already in progress
04-30 13:45:36.567 26651-26681/com.example.adamf.authtest V/FA: Activity resumed, time: 49673345
04-30 13:45:36.570 26651-26681/com.example.adamf.authtest I/FA: Tag Manager is not found and thus will not be used
04-30 13:45:36.572 26651-26681/com.example.adamf.authtest D/FA: Logging event (FE): screen_view(_vs), Bundle[{firebase_event_origin(_o)=auto, firebase_screen_class(_sc)=SplashActivity, firebase_screen_id(_si)=-9142861890006532973}]
04-30 13:45:36.581 26651-26684/com.example.adamf.authtest D/OpenGLRenderer: HWUI GL Pipeline
04-30 13:45:36.587 26651-26651/com.example.adamf.authtest D/ViewRootImpl@2db840c[SplashActivity]: setView = DecorView@b0d545b[SplashActivity] TM=true MM=false
04-30 13:45:36.591 26651-26681/com.example.adamf.authtest V/FA: Connection attempt already in progress
04-30 13:45:36.608 26651-26651/com.example.adamf.authtest D/ViewRootImpl@2db840c[SplashActivity]: dispatchAttachedToWindow
04-30 13:45:36.627 26651-26651/com.example.adamf.authtest D/AndroidRuntime: Shutting down VM
04-30 13:45:36.632 26651-26651/com.example.adamf.authtest E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: com.example.adamf.authtest, PID: 26651
                                                                        java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
                                                                            at com.example.adamf.authtest.SliderAdapter.instantiateItem(SliderAdapter.java:64)
                                                                            at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1004)
                                                                            at android.support.v4.view.ViewPager.populate(ViewPager.java:1152)
                                                                            at android.support.v4.view.ViewPager.populate(ViewPager.java:1086)
                                                                            at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1616)
                                                                            at android.view.View.measure(View.java:23279)
                                                                            at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
                                                                            at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
                                                                            at android.view.View.measure(View.java:23279)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
                                                                            at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                            at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141)
                                                                            at android.view.View.measure(View.java:23279)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
                                                                            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
                                                                            at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
                                                                            at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
                                                                            at android.view.View.measure(View.java:23279)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
                                                                            at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                            at android.view.View.measure(View.java:23279)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
                                                                            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
                                                                            at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
                                                                            at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
                                                                            at android.view.View.measure(View.java:23279)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
                                                                            at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                            at com.android.internal.policy.DecorView.onMeasure(DecorView.java:898)
                                                                            at android.view.View.measure(View.java:23279)
                                                                            at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2832)
                                                                            at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1869)
                                                                            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2124)
                                                                            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1738)
                                                                            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7745)
                                                                            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
                                                                            at android.view.Choreographer.doCallbacks(Choreographer.java:723)
                                                                            at android.view.Choreographer.doFrame(Choreographer.java:658)
                                                                            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
                                                                            at android.os.Handler.handleCallback(Handler.java:789)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:98)
                                                                            at android.os.Looper.loop(Looper.java:164)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:6938)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

SliderAdapter:

package com.example.adamf.authtest;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class SliderAdapter extends PagerAdapter {

Context context;
LayoutInflater layoutinflater;


public SliderAdapter(Context context) {
    this.context = context;
}

//Arrays
public int[] slide_images = {
        R.drawable.calen_icon,
        R.drawable.plan_icon,
        R.drawable.team_icon
};

public String[] slide_headings = {
        "CALENDAR",
        "PATIENTS",
        "FAMILY"
};

public String[] slide_desc = {
        "View your schedule for the entire month! Clicking on a date will bring up all your jobs for that day!",
        "Take a look at all the information about your patients that you will need to know, including their address, phone number and even past medications",
        "Write about how your patient is sleeping, eating and keeping active. Their family members can check up on them through a separate app!"
};

@Override
public int getCount() {
    return slide_headings.length;
}

@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
    return view == (RelativeLayout) o;
}

@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {

    layoutinflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
    View view = layoutinflater.inflate(R.layout.activity_splash, container, false);

    ImageView slideImageView = (ImageView) view.findViewById(R.id.slide_image);
    TextView slideHeading = (TextView) view.findViewById(R.id.slide_heading);
    TextView slideDescription = (TextView) view.findViewById(R.id.slide_description);

    slideImageView.setImageResource(slide_images[position]);
    slideHeading.setText(slide_headings[position]);
    slideDescription.setText(slide_desc[position]);

    container.addView(view);

    return view;
}

@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {

    container.removeView((RelativeLayout)object);
}
}

1 Ответ

0 голосов
/ 30 апреля 2018

В вашем SliderAdapter, в instantiateItem методе это:

View view = layoutinflater.inflate(R.layout.activity_splash, container, false);

Должно быть:

View view = layoutinflater.inflate(R.layout.slide_layout, container, false);
...