title: How to identify what is accessing hidden methods
body: <p>I have a flutter app that generates a lot of hidden API warnings:</p>
  <pre><code>Accessing hidden method Landroid/view/accessibility/AccessibilityNodeInfo;-&gt;getSourceNodeId()J (greylist,test-api, reflection, allowed)
  Accessing hidden method Landroid/view/accessibility/AccessibilityRecord;-&gt;getSourceNodeId()J (greylist, reflection, allowed)
  Accessing hidden field Landroid/view/accessibility/AccessibilityNodeInfo;-&gt;mChildNodeIds:Landroid/util/LongArray; (greylist, reflection, allowed)
  Accessing hidden method Landroid/util/LongArray;-&gt;get(I)J (greylist, reflection, allowed)
  ...
  Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;-&gt;&lt;clinit&gt;()V (blacklist, linking, denied)
  Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;-&gt;DEBUG_CLOSE_IDLE_CONNECTIONS:Z (greylist-max-o, linking, denied)
  Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;-&gt;sActiveDatabases:Ljava/util/WeakHashMap; (greylist-max-o, linking, denied)
  Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;-&gt;CONFLICT_VALUES:[Ljava/lang/String; (greylist, linking, allowed)
  </code></pre>
  <p>And so on. I haven't written any code to use Android's <code>SQLiteDatabase</code> or <code>AccessibilityNodeInfo</code>, but this doesn't provide any information about which bit of code is calling these hidden methods. It could be in Flutter, or one of the several plugins I have. Short of mutilating my code to remove these plugins, is there anything I can do to find out what code is calling these? I.e. to get a stack trace.</p>
  <p>Does Android have an option to crash on hidden field accesses rather than just logging them, or something similar?</p>