permissions-dispatcher / PermissionsDispatcher

A declarative API to handle Android runtime permissions.
https://github.com/permissions-dispatcher/PermissionsDispatcher
Apache License 2.0
11.23k stars 1.44k forks source link

can't be annotated with '@RuntimePermissions' #650

Closed yaochangliang159 closed 4 years ago

yaochangliang159 commented 4 years ago

i have add @RuntimePermissions but it seemed have some errors, i have tried "rebuild" "make","clean" "invalied cache and restart" ,but it do not resovle my problem

WX20191115-152542@2x WX20191115-152809@2x

my build.gradle is this: compileSdkVersion 28 defaultConfig { applicationId "com.gsww.jzfp_record" minSdkVersion 19 targetSdkVersion 28 multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } } ndk{ abiFilters "armeabi-v7a" } }

implementation 'androidx.appcompat:appcompat:1.0.0'

yaochangliang159 commented 4 years ago

my dependice is this:

dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') //noinspection GradleCompatible implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.google.android.material:material:1.0.0' implementation 'com.makeramen:roundedimageview:2.3.0' //okhttp implementation 'com.lzy.net:okgo:3.0.4' implementation 'com.google.code.gson:gson:2.8.2' implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-21' //根据你的需求ijk模式的so implementation 'com.github.bmelnychuk:atv:1.2.9' implementation 'com.jakewharton:butterknife:7.0.1' // annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0' implementation 'com.shuyu:gsyVideoPlayer-ex_so:6.0.3' //banner implementation 'cn.bingoogolapple:bga-banner:2.2.4@aar' //viewpager指示器 implementation 'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar' implementation 'com.shuyu:gsyVideoPlayer-java:6.0.3' implementation 'com.github.iwgang:countdownview:2.1.6' // implementation 'com.belerweb:pinyin4j:2.5.0' implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.2.3' implementation 'androidx.multidex:multidex:2.0.0' implementation('com.github.hotchemi:permissionsdispatcher:3.3.2') { // if you don't use android.app.Fragment you can exclude support for them exclude module: "support-v13" } annotationProcessor "com.github.hotchemi:permissionsdispatcher-processor:3.3.2" implementation 'org.greenrobot:eventbus:3.1.1' //超大图显示控件 implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0' //扫一扫 implementation 'me.dm7.barcodescanner:zxing:1.9.8' implementation 'me.dm7.barcodescanner:core:1.9.8' }

yaochangliang159 commented 4 years ago

logcat error is this:

java.lang.RuntimeException: permissions.dispatcher.processor.exception.WrongClassException: Class 'com.gsww.record.ui.archive.SearchArchivesFragment' can't be annotated with '@RuntimePermissions' at com.sun.tools.javac.main.Main.compile(Main.java:553) at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129) at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138) at org.gradle.api.internal.tasks.compile.IncrementalAnnotationProcessingCompileTask.call(IncrementalAnnotationProcessingCompileTask.java:73) at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50) at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:37) at org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerRunnable.run(AbstractDaemonCompiler.java:87) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:36) at org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:46) at org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:100) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:146) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:128) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:748) Caused by: permissions.dispatcher.processor.exception.WrongClassException: Class 'com.gsww.record.ui.archive.SearchArchivesFragment' can't be annotated with '@RuntimePermissions' at permissions.dispatcher.processor.util.ValidatorsKt.findAndValidateProcessorUnit(Validators.kt:35) at permissions.dispatcher.processor.PermissionsProcessor.processJava(PermissionsProcessor.kt:94) at permissions.dispatcher.processor.PermissionsProcessor.process(PermissionsProcessor.kt:68) at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794) at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705) at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91) at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035) at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176) at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170) at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856) at com.sun.tools.javac.main.Main.compile(Main.java:523) ... 29 more

hotchemi commented 4 years ago

@yaochangliang159 which fragment do you use? depends on the release version but we only allow androidx.fragment in recent version. If you still use appcompat please try 3.x ver.

https://github.com/permissions-dispatcher/PermissionsDispatcher#installation