Android Q access非SDK接口-Landroid/widget/AbsListView-&燃气轮机;mSelectorPosition:I(greylist-max-p,反射,拒绝)

Android Q access非SDK接口-Landroid/widget/AbsListView-&燃气轮机;mSelectorPosition:I(greylist-max-p,反射,拒绝),android,expandablelistview,android-10.0,Android,Expandablelistview,Android 10.0,需要一个帮助,我们可以在Android Q中使用旧API 我面临着这个问题 一切正常,直到下午 如何启用对非SDK接口的访问 如何启用对非SDK接口的访问 这是不可能的 修复库,使其不尝试使用此隐藏字段。因为这个库已经五年没有更新了,所以最初的开发人员不太可能解决这个问题 或者,找到一个替换库并使用它 或者,创建您自己的替换UI。您的代码没有问题,但您使用的是一个未更新的Android 10,其目标sdk KitKat(API 19)非常陈旧。您需要使用更更新的库替换此库,并且基于Androi

需要一个帮助,我们可以在Android Q中使用旧API

我面临着这个问题

一切正常,直到下午

如何启用对非SDK接口的访问

如何启用对非SDK接口的访问

这是不可能的

修复库,使其不尝试使用此隐藏字段。因为这个库已经五年没有更新了,所以最初的开发人员不太可能解决这个问题

或者,找到一个替换库并使用它


或者,创建您自己的替换UI。

您的代码没有问题,但您使用的是一个未更新的Android 10,其目标sdk KitKat(API 19)非常陈旧。您需要使用更更新的库替换此库,并且基于Android p上的
RecyclerView

,此库不起作用。您只需使用android
ExpandableListView
。这将是一对一可替换的


您可以尝试使用FloatingGroupExpandableListView存储库中的示例项目,只需使用
ExpandableListView
代替
com.diegocarloslima.fgelv.lib.FloatingGroupExpandableListView
。它应该可以工作。

现在,如果我们可以使用proguard规则,并且可以在android 10上访问,那么将非常感谢您的更新,那么是否有其他AbsListview的替代方案。我需要替换AbsListview吗?@Mahesh:您不能替换
AbsListview
。这是一个框架类。你不需要尝试通过反射来访问它的私有字段。如果可能的话,你能给我一些提示或例子,说明在什么地方这样做了,或者类似的,这样我可以尽快修复它。这在我的生产应用程序上造成了一个大问题。
2019-09-27 18:36:25.024 13800-13800/com.app.readyb W/com.app.readyb: Accessing hidden field Landroid/widget/AbsListView;->mSelectorPosition:I (greylist-max-p, reflection, denied)
2019-09-27 18:36:25.029 13800-13800/com.app.readyb W/com.app.readyb.diegocarloslima.fgelv.lib.ReflectionUtils: java.lang.NoSuchFieldException: No field mSelectorPosition in class Landroid/widget/AbsListView; (declaration of 'android.widget.AbsListView' appears in /system/framework/framework.jar!classes3.dex)
        at java.lang.Class.getDeclaredField(Native Method)
        at com.app.readyb.diegocarloslima.fgelv.lib.ReflectionUtils.getFieldValue(ReflectionUtils.java:15)
        at com.app.readyb.diegocarloslima.fgelv.lib.FloatingGroupExpandableListView.dispatchDraw(FloatingGroupExpandableListView.java:195)
        at android.view.View.draw(View.java:21439)
        at android.widget.AbsListView.draw(AbsListView.java:4388)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.draw(View.java:21439)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1765)
        at android.view.View.draw(View.java:21439)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1765)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1256)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at androidx.drawerlayout.widget.DrawerLayout.drawChild(DrawerLayout.java:1426)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.draw(View.java:21439)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.draw(View.java:21439)
        at com.android.internal.policy.DecorView.draw(DecorView.java:806)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:575)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:581)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:654)
        at android.view.V
2019-09-27 18:36:25.030 13800-13800/com.app.readyb D/AndroidRuntime: Shutting down VM


    --------- beginning of crash
2019-09-27 18:36:25.046 13800-13800/com.app.readyb E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.app.readyb, PID: 13800
    java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
        at com.app.readyb.diegocarloslima.fgelv.lib.FloatingGroupExpandableListView.dispatchDraw(FloatingGroupExpandableListView.java:195)
        at android.view.View.draw(View.java:21439)
        at android.widget.AbsListView.draw(AbsListView.java:4388)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.draw(View.java:21439)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1765)
        at android.view.View.draw(View.java:21439)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1765)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1256)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at androidx.drawerlayout.widget.DrawerLayout.drawChild(DrawerLayout.java:1426)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.draw(View.java:21439)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20304)
        at android.view.View.draw(View.java:21168)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.draw(View.java:21439)
        at com.android.internal.policy.DecorView.draw(DecorView.java:806)
        at android.view.View.updateDisplayListIfDirty(View.java:20313)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:575)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:581)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:654)
        at android.view.ViewRootImpl.draw(ViewRootImpl.java:3610)
        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3418)
2019-09-27 18:36:25.046 13800-13800/com.app.readyb E/AndroidRuntime:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2755)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1721)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7598)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)
        at android.view.Choreographer.doCallbacks(Choreographer.java:790)
        at android.view.Choreographer.doFrame(Choreographer.java:725)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)