Besoin d'une aide Toute façon Nous pouvons utiliser la vieille API dans Android Q.
Je suis confronté à ce problème dans https://github.com/diegocarloslima/floitantGroupExpandablierlitview p>
Tous fonctionne bien jusqu'à Android P p>
Comment puis-je activer l'accès aux interfaces non-SDK? P>
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)
3 Réponses :
Comment puis-je activer l'accès aux interfaces non-SDK? P> blockQuote>
Ce n'est pas possible. P>
Fixez la bibliothèque pour ne pas tenter d'utiliser ce champ masqué. Étant donné que la bibliothèque n'a pas été mise à jour dans cinq ans, il est peu probable que le développeur original corrige le problème. P>
ou, trouvez une bibliothèque de remplacement et utilisez-la. P>
ou, créez votre propre interface utilisateur de remplacement. p>
Merci de la mise à jour, alors existe-t-il une alternative d'une vision abslue.
Dois-je remplacer Abslistview?
@MAHESH: Vous ne pouvez pas remplacer abslistview code>. C'est une classe-cadre. Vous n'avez pas besoin d'essayer d'accéder à ses champs privés par réflexion.
Si possible, pouvez-vous donner un indice ou un exemple où cela se fait ou similaire afin que je puisse résoudre le problème dès que possible. Cela crée un gros problème sur mon application de production.
Il n'y a rien de mal à votre code, mais vous utilisez un Library non Mis à jour pour Android 10 avec Target SDK Kitkat (API 19) si vraiment vraiment vieux. Vous devez remplacer cette bibliothèque avec quelque chose de plus mis à jour et basé sur un recyclerview code>. P>
sur Android P en avant, cette bibliothèque ne fonctionne pas. Vous pouvez simplement utiliser Android Vous pouvez essayer avec le projet exemple dans FloatingGroupExpandablierView Repository et il vous suffit d'utiliser ALLESTABLELISTVIEW code> à la place. Qui sera un à un remplaçable. P>
EXPERABLICISTVIEW CODE> à la place de
com.diegocarloslima.fgelv.lib.floatinggroupExpandablierview code>. Cela devrait fonctionner. P>
Pour l'instant, si nous pouvons utiliser des règles de proguard et accessible sur Android 10, ce sera génial