Firebase AsyncTask фатальное исключение - PullRequest
0 голосов
/ 28 июня 2019

В моем проекте я работаю с Firebase и , иногда (не каждый раз), когда я запускаю свое приложение, я получаю исключение: java.lang.ArrayIndexOutOfBoundsException: length=15; index=15.Я понятия не имею, почему, но я думаю, что это может быть связано с Firebase.Мой полный журнал:

E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: pl.project.project, PID: 21825
java.lang.ArrayIndexOutOfBoundsException: length=15; index=15
    at java.util.ArrayList.add(ArrayList.java:468)
    at com.facebook.appevents.RestrictiveDataManager.updateFromSetting(RestrictiveDataManager.java:46)
    at com.facebook.internal.FetchedAppSettingsManager.parseAppSettingsFromJSON(FetchedAppSettingsManager.java:323)
    at com.facebook.internal.FetchedAppSettingsManager.queryAppSettings(FetchedAppSettingsManager.java:286)
    at com.facebook.UserSettingsManager$1.run(UserSettingsManager.java:151)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)

Моя всплеск активности:

class SplashActivity : AppCompatActivity() {

    private lateinit var presenter: SplashPresenter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_splash)
        presenter = SplashPresenterImpl(this)
        presenter.onCreate()
        window.setExitTransition(null)
    }

}

SplashPresenterImpl:

class SplashPresenterImpl(val activity: SplashActivity): SplashPresenter {

    override fun onCreate() {
        val auth = FirebaseAuth.getInstance()
        if(auth.currentUser !=null && !auth.currentUser?.isEmailVerified!!) auth.signOut()
        if(auth.currentUser!=null) Handler().postDelayed({startMainActivity()},500)
        else Handler().postDelayed({startLoginActivity()},500)
    }

    private fun startMainActivity() = activity.startActivity(Intent(activity, MainActivity::class.java))

    private fun startLoginActivity(){
        val activityOptions = ActivityOptions.makeSceneTransitionAnimation(activity,
            Pair(activity.konkurlyText, "konkurlyTextTranstion"))
        activity.startActivity(Intent(activity, LoginActivity::class.java), activityOptions.toBundle())
    }   
}

Заранее спасибо и хорошего дня.

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Мне показалось, что обновление с com.google.firebase:firebase-core:16.0.9' до 'com.google.firebase:firebase-core:17.0.0' решило проблему.

0 голосов
/ 28 июня 2019

Это исключение означает, что где-то в вашем коде есть массив с пределом в 15 индексов.Но у вас есть нечто большее.

Этот массив не может быть назван как массив в Kotlin, в любом случае, должно быть несколько java-кодов, работающих с массивами в фоновом режиме.

В качестве первого шага вы можетедумаю уменьшить количество символов в "konkurlyTextTranstion"

С уважением, Удачи.

...