Permissionsdispatcher: Kotlin + Android Studio error

Created on 2 Jan 2018  路  2Comments  路  Source: permissions-dispatcher/PermissionsDispatcher

Overview

I added this configuration in my build.gradle file.

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "dominando.android.persistencia"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

kapt {
    generateStubs = true
}

dependencies {
    ...
    implementation ("com.github.hotchemi:permissionsdispatcher:3.1.0") {
        exclude module: "support-v13"
    }
    kapt "com.github.hotchemi:permissionsdispatcher-processor:3.1.0"
}

I'm using in my activity like as usual...

@RuntimePermissions
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btnRead.setOnClickListener {
            loadFromExternalWithPermissionCheck()
        }
        btnSave.setOnClickListener {
            saveToExternalWithPermissionCheck()
        }
    }

    @NeedsPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
    fun saveToExternal() { /* saving a file */ }

    @NeedsPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
    fun loadFromExternal() { /* reading a file */ }

    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        onRequestPermissionsResult(requestCode, grantResults)
    }

    @OnPermissionDenied(Manifest.permission.WRITE_EXTERNAL_STORAGE)
    fun showDeniedForExternal() {
        Toast.makeText(this, R.string.permission_denied, Toast.LENGTH_SHORT).show()
    }
}

The application is compiling and running fine. However, Android Studio displays errors in the generated methods saveToExternalWithPermissionCheck(), loadFromExternalWithPermissionCheck() and onRequestPermissionsResult(Int, IntArray).

Environment

  • Android Studio 3.0.1
  • Gradle Plugin 3.0.1
  • Kotlin 1.2.10
  • Compile SDK Version 26
inquiry

Most helpful comment

Thanks! It works!
I just removed the kapt block and added

apply plugin: 'kotlin-kapt'

All 2 comments

generateStubs is sort of old fashioned style. please see our sample and official doc. Thank you!

https://kotlinlang.org/docs/reference/kapt.html
https://github.com/permissions-dispatcher/PermissionsDispatcher/blob/master/sample-kotlin/build.gradle

Thanks! It works!
I just removed the kapt block and added

apply plugin: 'kotlin-kapt'
Was this page helpful?
0 / 5 - 0 ratings