简体   繁体   English

如何在Android API 25级及以下级别中使用Reflection API getParameters?

[英]How do I Use Reflection API getParameters in Android API level 25 and Below?

I am currently building an in-app logger utility for Android that uses the Reflection API to log basic data about the called class/method/parameters. 我目前正在为Android构建一个应用程序内记录器实用程序,该实用程序使用Reflection API记录有关所调用的类/方法/参数的基本数据。

Method.getParameters() is the call to retrieve an array of parameters for the given method, but this method only works on Android API level 26+ . Method.getParameters()是为给定方法检索参数数组的调用, 但是此方法仅适用于Android API级别26+ Does anyone know of a workaround that would let me use getParameters() on API level 25 or below? 有谁知道可以让我在API级别25或以下使用getParameters()的变通方法吗?

Alternatively, if there is a decent workaround for this, that would work too! 另外,如果有一个不错的解决方法,那也行得通! Thanks in advance! 提前致谢! Here is the method I will be updating once I have a fix/workaround in place: 一旦有了适当的修复/解决方法,这就是我将更新的方法:

private Parameter[] _retrieveParametersForMethod( Method method ) {

    Parameter[] methodParameters;

    // getParameters() only works on API level 26+ (Oreo)
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        return methodParameters = method.getParameters();
    } else
        return null;    // TODO: Find a workaround for pre-API level 26

}

Not sure if it will work for you, but I got a lot of mileage out of apache beanutils: 不知道它是否对您有用,但是我从apache beanutils中学到了很多东西:

http://commons.apache.org/proper/commons-beanutils/ http://commons.apache.org/proper/commons-beanutils/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Broadcastreceiver无法在android Nougat API 25级中工作吗? - Broadcastreceiver not working in android Nougat api level 25? Intent.ACTION_CALL 不适用于 API 级别 25 及以下 - Intent.ACTION_CALL not working for API Level 25 and below Android:如何使应用使用情况的活动低于API级别21? - Android: How to get app usage activity below API level 21? 适用于Android API级别19及以下的ThreadLocalRandom()替代品吗? - ThreadLocalRandom() alternative for Android API level 19 and below? Android:Java方法类型的API级别25,如果未调用会引起问题? - Android: java method type API level 25, cause issue if not called? 有什么方法可以在 api 25 级下执行类似“requestDismissKeyGuard”的操作吗? - Is there any way to do something like `requestDismissKeyGuard` under api level 25? 如何修复 Android 中的“呼叫需要 API 级别 26(当前最小值为 25)”错误 - How to fix "Call requires API level 26 (current min is 25) " error in Android 如何在Android API 25中进行套接字/线程 - How to Socket/Thread in Android API 25 如何使用非官方Android Market API? - How do I use the unofficial Android Market API? 如何在Android上使用Google Maps Directions API? - How do I use Google Maps Directions API on Android?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM