Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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_Protected_Access Modifiers_Class Visibility - Fatal编程技术网

Android 无法从子类访问受保护的方法

Android 无法从子类访问受保护的方法,android,kotlin,protected,access-modifiers,class-visibility,Android,Kotlin,Protected,Access Modifiers,Class Visibility,我知道以前有人问过这个问题,但我的问题很奇怪,我找不到答案 我有一个声明成员受保护的父类 class BaseContoller<G: BaseContract.BasePresenter, F: BaseModel> { protected var presenter: G? = null // ... } 奇怪的行为出现在这里,presenter只有在没有过滤器的情况下才能完全访问if(这是printerasociationcontroller),使用if语句,

我知道以前有人问过这个问题,但我的问题很奇怪,我找不到答案

我有一个声明成员受保护的父类

class BaseContoller<G: BaseContract.BasePresenter, F: BaseModel> {
    protected var presenter: G? = null
    // ...
}
奇怪的行为出现在这里,
presenter
只有在没有过滤器的情况下才能完全访问
if(这是printerasociationcontroller)
,使用
if
语句,当调用
onConnection
回调时,
presenter
抛出一个
IllegalAccessError
异常

这是PrinteraSociationController的声明

class PrinterAssociationController: BackupPrinterController<PrinterAssociationContract.Presenter, PrinterAssociationModel>(),
PrinterAssociationContract.View

我不明白为什么会发生这种情况,当我把
if
语句

PrinteraSociationController的签名是什么?@maghtywoz,我刚刚更新了这个问题,但异常是从父级抛出的,
BackupPrinterController
看起来像是编译器的史诗级失败。无法在atm机上测试,但这似乎很有趣。
class PrinterAssociationController: BackupPrinterController<PrinterAssociationContract.Presenter, PrinterAssociationModel>(),
PrinterAssociationContract.View
java.lang.IllegalAccessError: Method 'package.common.base.BaseContract$BasePresenter package.common.base.BaseController.getPresenter()' is inaccessible to class 'package.project.features.shared.controllers.BackupPrinterController$startScan$1' (declaration of 'package.project.features.shared.controllers.BackupPrinterController$startScan$1' appears in /data/app/package.project-1/base.apk:classes2.dex)
    at package.project.features.shared.controllers.BackupPrinterController$startScan$1.invoke(BackupPrinterController.kt:53)
    at package.project.features.shared.controllers.BackupPrinterController$startScan$1.invoke(BackupPrinterController.kt:35)
    at package.project.utils.print.PrinterConnection$scan$1$4.accept(PrinterConnection.kt:84)
    at package.project.utils.print.PrinterConnection$scan$1$4.accept(PrinterConnection.kt:24)
    at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)
    at io.reactivex.internal.operators.observable.ObservableFilter$FilterObserver.onNext(ObservableFilter.java:52)
    at io.reactivex.internal.operators.observable.ObservableDistinct$DistinctObserver.onNext(ObservableDistinct.java:85)
    at io.reactivex.internal.operators.mixed.CompletableAndThenObservable$AndThenObservableObserver.onNext(CompletableAndThenObservable.java:65)
    at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:265)
    at io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:562)
    at io.reactivex.internal.operators.observable.ObservableDoOnEach$DoOnEachObserver.onNext(ObservableDoOnEach.java:101)
    at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:62)
    at io.reactivex.internal.operators.observable.ObservableUnsubscribeOn$UnsubscribeObserver.onNext(ObservableUnsubscribeOn.java:60)
    at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onNext(ObservableCreate.java:66)
    at com.polidea.rxandroidble2.internal.serialization.FIFORunnableEntry$1.onNext(FIFORunnableEntry.java:66)
    at io.reactivex.internal.operators.observable.ObservableUnsubscribeOn$UnsubscribeObserver.onNext(ObservableUnsubscribeOn.java:60)
    at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onNext(ObservableSubscribeOn.java:58)
    at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onNext(ObservableCreate.java:66)
    at com.polidea.rxandroidble2.internal.operations.ScanOperationApi21$1.onScanResult(ScanOperationApi21.java:77)
    at android.bluetooth.le.BluetoothLeScanner$BleScanCallbackWrapper$1.run(BluetoothLeScanner.java:471)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at com.osama.firecrasher.FireLooper.run(FireLooper.kt:39)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6780)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1500)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1390)