ParkSangGwon / TedBottomPicker

TedBottomPicker is simple image picker using bottom sheet
1.11k stars 185 forks source link

java.lang.IllegalArgumentException: Unknown pattern character 'Y' #115

Closed sangilIm closed 5 years ago

sangilIm commented 5 years ago

화면을 잘나타나는데 아래로 스크롤할 때 라이브러리가 터져버립니다.

java.lang.IllegalArgumentException: Unknown pattern character 'Y' at java.text.SimpleDateFormat.validatePatternCharacter(SimpleDateFormat.java:314) at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:296) at java.text.SimpleDateFormat.(SimpleDateFormat.java:356) at gun0912.tedimagepicker.TedImagePickerActivity$setupMediaRecyclerView$$inlined$run$lambda$1.onScrolled(TedImagePickerActivity.kt:210) at androidx.recyclerview.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:5077) at androidx.recyclerview.widget.RecyclerView.scrollByInternal(RecyclerView.java:1975) at androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:3297) at android.view.View.dispatchTouchEvent(View.java:8975) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2698) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2410) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2709) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2425) at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2559) at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1767) at android.app.Activity.dispatchTouchEvent(Activity.java:2866) at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2520) at android.view.View.dispatchPointerEvent(View.java:9180) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4704) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4542) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4070) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4123) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4089) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4199) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4097) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4256) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4070) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4123) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4089) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4097) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4070) at android.view.ViewRoot

해결

java.text.SimpleDateFormat을 사용할 때 다음과 같은 에러가 나는 경우가 있다. java.lang.IllegalArgumentException: Illegal pattern character 'Y' JAVA 8 이상에서는 SimpleDateFormat에서 Y(대문자)를 쓸 수 있지만 JAVA 7 이하에서는 Y(대문자)를 인지를 못해서 y(소문자)를 써야만 한다! 소문자 y를 사용하면 깔끔하게 해결된다.

업데이트 부탁드립니당

ParkSangGwon commented 5 years ago

@sangilIm TedImagePickerActivity 라이브러리와 헷갈리신것 같습니다. 해당 이슈는 TedImagePickerActivity의 1.0.5 버전에서 해결되었습니다.