小编Dan*_*wan的帖子

不允许覆盖“writeToParcel”。改用“Parceler”伴随对象

我使用 Jetbrains插件在 Kotlin 中生成 Android Parcelable 类,并得到了这两个异常(不是警告,不像这里,所以项目没有构建):

CREATOR_DEFINITION_IS_NOT_ALLOWED:不允许定义“CREATOR”。改用“Parceler”伴随对象。

OVERRIDING_WRITE_TO_PARCEL_IS_NOT_ALLOWED:不允许覆盖“writeToParcel”。改用“Parceler”伴随对象。

我查看了类似的问题,但没有找到适合我的案例的任何解决方案。

我的 Kotlin 版本:1.1.51(根据 Gradle),但是这个功能是在 1.1.4 中添加的:https ://blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out /

自动生成的代码:

@Parcelize
data class User(
        val id: Int,
        val cardId: String,
        val coefficent: Float = 1.0F,
        val name: String,
        val surname: String = ""
) : Parcelable {
    constructor(source: Parcel) : this(
            source.readInt(),
            source.readString(),
            source.readFloat(),
            source.readString(),
            source.readString()
    )

    companion object {
        @JvmField
        val CREATOR: Parcelable.Creator<User> = object : Parcelable.Creator<User> {
            override fun createFromParcel(source: Parcel): User = User(source) …
Run Code Online (Sandbox Code Playgroud)

android parcelable kotlin parceler

6
推荐指数
1
解决办法
2062
查看次数

运行 collectstatic 时在 django Docker 容器内的 mkdir 上的权限被拒绝

我修改了 django-cookiecutter 默认生产模板,使caddy Web 服务器提供静态文件。我使用的卷映射./static在目录中的Django球童通过主机containters./static目录,但我收到一个权限错误,当搬运工执行python manage.py collectstatic --noinput试图创建的子文件夹./static

但是,如果我不在djangodjango 容器的 Dockerfile 中切换到用户,因此collectstatic以 root身份执行,则一切正常。我猜django容器中的用户不允许写入主机目录,即使chown -R django /app/static已成功执行。

回溯(最近一次调用):
文件“/app/manage.py”,第 30 行,在 <\module>
execute_from_command_line(sys.argv)
...
文件“/usr/local/lib/python3.6/site- package/collectfast/management/commands/collectstatic.py”,第 111 行,在
copy_file self.do_copy_file(args)
文件“/usr/local/lib/python3.6/site-packages/collectfast/management/commands/collectstatic.py “,第 100 行,在 do_copy_file
路径,prefixed_pa​​th ,source_storage)
文件“/usr/local/lib/python3.6/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py”,第 354 行,在 copy_file
self.storage.save(prefixed_pa​​th, source_file)
文件“/usr/local/lib/python3.6/site-packages/django/core/files/storage.py”,第 49 行,保存
返回 self._save(name, content)
文件“/usr/local/lib/python3.6/site-packages/django/core/files/storage.py”,第 236 行,在 _save
os.makedirs(directory)
文件“/usr/local/lib/python3. 6/os.py", line 220, in makedirs …

django docker docker-compose cookiecutter-django caddy

6
推荐指数
1
解决办法
4601
查看次数

迁移到androidX后,在Retrofit界面中Kapt NonExistentClass异常

我正在使用Retrofit,DaggerGlide为我的应用程序.迁移后androidX,kapt与Dagger和Glide注释处理器完美配合.项目构建和同步成功,但是,当我运行应用程序时,我在我的ApiService接口中获得Kotlin编译器异常,我在其中使用Retrofit注释

ApiService.kt

import retrofit2.Call
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
import retrofit2.http.Query

interface ApiService {

    @GET("/popular")
    fun getPopular(@Query("lang") lang: String = LANGUAGE): Call<...>

...

    companion object {
        val STATUS_OK = "ok"
        var LANGUAGE = "en"

        fun create(): ApiService {
            val retrofit = Retrofit.Builder()
                    .addConverterFactory(GsonConverterFactory.create())
                    .baseUrl(...)
                    .build()

            return retrofit.create(ApiService::class.java);
        }
    }
Run Code Online (Sandbox Code Playgroud)

的build.gradle

    apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion …
Run Code Online (Sandbox Code Playgroud)

android kotlin retrofit android-studio-3.2 androidx

0
推荐指数
1
解决办法
2129
查看次数