Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何实现图书馆日历视图_Android_Kotlin_Calendarview - Fatal编程技术网

Android 如何实现图书馆日历视图

Android 如何实现图书馆日历视图,android,kotlin,calendarview,Android,Kotlin,Calendarview,我使用图书馆使日历应用程序类似于谷歌日历周查看日历。我在build.gradle中阅读了所有文档并添加了实现'com.jonaswanke.calendar:calendar:0.1.1',但是当我将日历视图添加到activity\u mail.xml <com.jonaswanke.calendar.CalendarView android:id="@+id/calendar" android:layout_width="match_pare

我使用图书馆使日历应用程序类似于谷歌日历周查看日历。我在
build.gradle
中阅读了所有文档并添加了实现
'com.jonaswanke.calendar:calendar:0.1.1'
,但是当我将日历视图添加到
activity\u mail.xml

<com.jonaswanke.calendar.CalendarView
    android:id="@+id/calendar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:range="week" />

以下异常在应用程序启动时使我的应用程序崩溃

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 13101
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: android.view.InflateException: Binary XML file line #9 in com.example.myapplication:layout/activity_main: Binary XML file line #9 in com.example.myapplication:layout/activity_main: Error inflating class com.jonaswanke.calendar.CalendarView
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3895)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4074)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:219)
        at android.app.ActivityThread.main(ActivityThread.java:8347)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
     Caused by: android.view.InflateException: Binary XML file line #9 in com.example.myapplication:layout/activity_main: Binary XML file line #9 in com.example.myapplication:layout/activity_main: Error inflating class com.jonaswanke.calendar.CalendarView
     Caused by: android.view.InflateException: Binary XML file line #9 in com.example.myapplication:layout/activity_main: Error inflating class com.jonaswanke.calendar.CalendarView
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:864)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1016)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:971)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1133)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1094)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:692)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:536)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:483)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)
        at com.example.myapplication.MainActivity.onCreate(MainActivity.kt:27)
        at android.app.Activity.performCreate(Activity.java:8085)
        at android.app.Activity.performCreate(Activity.java:8073)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1320)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3868)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4074)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:219)
        at android.app.ActivityThread.main(ActivityThread.java:8347)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lkotlinx/coroutines/experimental/CoroutineDispatcher;
        at com.jonaswanke.calendar.CalendarView.<init>(CalendarView.kt:495)
E/AndroidRuntime:     at com.jonaswanke.calendar.CalendarView.<init>(CalendarView.kt:32)
        at com.jonaswanke.calendar.CalendarView.<init>(Unknown Source:6)
            ... 28 more
     Caused by: java.lang.ClassNotFoundException: kotlinx.coroutines.experimental.CoroutineDispatcher
        at java.lang.VMClassLoader.findLoadedClass(Native Method)
        at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
            ... 31 more
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/coroutines/experimental/AbstractCoroutineContextElement;
            ... 31 more
     Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlin.coroutines.experimental.AbstractCoroutineContextElement" on path: DexPathList[[zip file "/data/app/com.example.myapplication-_1QFEnFxaCJxdEfjNQvp0g==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.myapplication-_1QFEnFxaCJxdEfjNQvp0g==/lib/arm64, /system/lib64, /hw_product/lib64, /system/product/lib64, /prets/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:209)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
            ... 31 more
I/Process: Sending signal. PID: 13101 SIG: 9
E/AndroidRuntime:致命异常:主
进程:com.example.myapplication,PID:13101
java.lang.RuntimeException:无法启动活动组件信息{com.example.myapplication/com.example.myapplication.MainActivity}:android.view.InflateException:com.example中的二进制XML文件行#9.myapplication:layout/activity#main:com.example中的二进制XML文件行#9.myapplication:layout/activity#main:对类com.jonaswanke.calendar.CalendarView进行膨胀时出错
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3895)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4074)
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473)
位于android.os.Handler.dispatchMessage(Handler.java:110)
位于android.os.Looper.loop(Looper.java:219)
位于android.app.ActivityThread.main(ActivityThread.java:8347)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
原因:android.view.InflateException:com.example中的二进制XML文件行#9.myapplication:layout/activity#main:com.example中的二进制XML文件行#9.myapplication:layout/activity#main:com.jonaswanke.calendar.CalendarView类膨胀错误
原因:android.view.InflateException:com.example.myapplication:layout/activity#9中的二进制XML文件行#main:错误膨胀类com.jonaswanke.calendar.CalendarView
原因:java.lang.reflect.InvocationTargetException
位于java.lang.reflect.Constructor.newInstance0(本机方法)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:343)
在android.view.LayoutInflater.createView(LayoutInflater.java:864)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1016)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:971)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:1133)
位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1094)
在android.view.LayoutInflater.充气(LayoutInflater.java:692)
在android.view.LayoutInflater.inflate(LayoutInflater.java:536)
在android.view.LayoutInflater.inflate(LayoutInflater.java:483)
位于androidx.appcompat.app.appcompatedelegateimpl.setContentView(appcompatedelegateimpl.java:696)
位于androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)
在com.example.myapplication.MainActivity.onCreate上(MainActivity.kt:27)
位于android.app.Activity.performCreate(Activity.java:8085)
位于android.app.Activity.performCreate(Activity.java:8073)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1320)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3868)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4074)
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473)
位于android.os.Handler.dispatchMessage(Handler.java:110)
位于android.os.Looper.loop(Looper.java:219)
位于android.app.ActivityThread.main(ActivityThread.java:8347)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
原因:java.lang.NoClassDefFoundError:未能解析:Lkotlinx/coroutines/experimental/CoroutineDispatcher;
在com.jonaswanke.calendar.CalendarView.(CalendarView.kt:495)
E/AndroidRuntime:com.jonaswanke.calendar.CalendarView。(CalendarView.kt:32)
访问com.jonaswanke.calendar.CalendarView。(未知来源:6)
... 28多
原因:java.lang.ClassNotFoundException:kotlinx.coroutines.experimental.CoroutineDispatcher
位于java.lang.VMClassLoader.findLoadedClass(本机方法)
位于java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:363)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 还有31个
原因:java.lang.NoClassDefFoundError:未能解析:Lkotlin/coroutines/experimental/AbstractCoroutineContextElement;
... 还有31个
原因:java.lang.ClassNotFoundException:在路径:DexPathList[[zip file”/data/app/com.example.myapplication-\u 1QFEnFxaCJxdEfjNQvp0g==/base.apk]的NativeLibrary目录中未找到类“kotlin.coroutines.experimental.AbstractCoroutineContextElement”=[/data/app/com.example.myapplication-\u 1QFEnFxaCJxdEfjNQvp0g==/lib/arm64、/system/lib64、/hw_product/lib64、/system/product/lib64、/prets/lib64]]
位于dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:209)
位于java.lang.ClassLoader.loadCla
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    calendar.eventRequestCallback = {
        populate(it)
    }
}

@Suppress("MagicNumber")
private fun populate(week: Week, force: Boolean = false) {
    if (!force && calendar.cachedEvents.contains(week))
        return

    val events = mutableListOf<Event>()
    for (i in 0..15) {
        val id = nextId++.toString()
        val start = week.start + abs(random.nextLong()) % DateUtils.WEEK_IN_MILLIS
        events.add(BaseEvent(
                id,
                id,
                (random.nextInt() or 0xFF000000.toInt()) and 0x00202020.inv(),
                start,
                start + abs(random.nextLong()) % (DateUtils.DAY_IN_MILLIS / 8)))
    }
    for (i in 0..3) {
        val id = nextId++.toString()
        val start = week.start + abs(random.nextLong()) % DateUtils.WEEK_IN_MILLIS
        events.add(BaseEvent(
                id,
                id,
                (random.nextInt() or 0xFF000000.toInt()) and 0x00202020.inv(),
                start,
                start + abs(random.nextLong()) % (DateUtils.DAY_IN_MILLIS * 7),
                true))
    }
    calendar.setEventsForWeek(week, events)
}