我正在使用日历选择器插件android-times-square的Android Studio中的嵌入式渲染器。
https://github.com/square/android-times-square
我的布局声明:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.squareup.timessquare.CalendarPickerView
android:id="@+id/calendar_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="16dp"
android:scrollbarStyle="outsideOverlay"
android:clipToPadding="false"
android:background="#FFFFFF"
/>
IDE显示的相关异常堆栈跟踪:
java.lang.IllegalArgumentException: Illegal pattern character 'L'
at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:845)
at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:659)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:585)
at com.squareup.timessquare.CalendarPickerView.<init>(CalendarPickerView.java:121)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
现在,我知道从API版本9(添加'L'和'C')开始的有效字符模式的更改,但我的SDK由build.gradle以下列方式管理:
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 10
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'joda-time:joda-time:2.3'
compile 'com.squareup.retrofit:retrofit:1.5.1'
compile 'com.android.support:appcompat-v7:20.0.0'
compile 'com.squareup:android-times-square:1.3.0@aar'
}
因此,解决正确的版本和SDK源与问题的麻烦'L'应该没有任何问题。以下是预览设置的屏幕截图:
http://i.imgur.com/aqauFHq.jpg?1
非常感谢任何帮助。
答案 0 :(得分:1)
此时预览渲染器使用的布局库中存在一个错误 - 它调用SimpleDateFormat
类的JDK版本而不是Android版本。您可以这样说,因为Android版本根本没有compile()
方法。
您可以在
跟踪错误