code: @Implementation(minSdk = P)
    protected static ParcelFileDescriptor nativeOpenAssetFd(long ptr,
        @NonNull String asset_path, long[] out_offsets) throws IOException {
      String asset_path_utf8 = asset_path;
      if (asset_path_utf8 == null) {
        // This will throw NPE.
        return null;
      }
  
      ATRACE_NAME(String.format("AssetManager::OpenAssetFd(%s)", asset_path_utf8));
  
      CppAssetManager2 assetmanager = AssetManagerFromLong(ptr);
      Asset asset = assetmanager.Open(asset_path_utf8, Asset.AccessMode.ACCESS_RANDOM);
      if (!isTruthy(asset)) {
        throw new FileNotFoundException(asset_path_utf8);
      }
      return ReturnParcelFileDescriptor(asset, out_offsets);
    }
docs: jlongArray out_offsets) {