在我的项目中,我使用的是、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())
}
}提前谢谢,祝您今天愉快。
发布于 2019-06-28 07:26:08
这个异常意味着在代码的某个地方有一个数组,其限制为15个索引。但你还有更多。
在Kotlin中,该数组可能不会被命名为array,无论如何,必须有一些java代码在后台处理数组。
作为第一步,您可能会考虑降低"konkurlyTextTranstion"中的字符数。
祝你好运。
发布于 2019-06-28 14:10:40
对我来说,从com.google.firebase:firebase-core:16.0.9'升级到'com.google.firebase:firebase-core:17.0.0'似乎解决了这个问题。
https://stackoverflow.com/questions/56802092
复制相似问题