@Implementation(minSdk = P)
  protected static @Nullable ParcelFileDescriptor nativeOpenNonAssetFd(long ptr, int jcookie,
      @NonNull String asset_path, @NonNull long[] out_offsets) throws IOException {
    ApkAssetsCookie cookie = JavaCookieToApkAssetsCookie(jcookie);
    String asset_path_utf8 = asset_path;
    if (asset_path_utf8 == null) {
      // This will throw NPE.
      return null;
    }

    ATRACE_NAME(String.format("AssetManager::OpenNonAssetFd(%s)", asset_path_utf8));

    CppAssetManager2 assetmanager = AssetManagerFromLong(ptr);
    Asset asset;
    if (cookie.intValue() != kInvalidCookie) {
      asset = assetmanager.OpenNonAsset(asset_path_utf8, cookie, Asset.AccessMode.ACCESS_RANDOM);
    } else {
      asset = assetmanager.OpenNonAsset(asset_path_utf8, Asset.AccessMode.ACCESS_RANDOM);
    }

    if (!isTruthy(asset)) {
      throw new FileNotFoundException(asset_path_utf8);
    }
    return ReturnParcelFileDescriptor(asset, out_offsets);
  }
@Implementation(minSdk = P)
  protected static @Nullable ParcelFileDescriptor nativeOpenNonAssetFd(long ptr, int jcookie,
      @NonNull String asset_path, @NonNull long[] out_offsets) throws IOException {
    ApkAssetsCookie cookie = JavaCookieToApkAssetsCookie(jcookie);
    String asset_path_utf8 = asset_path;
    if (asset_path_utf8 == null) {
      
      return null;
    }

    ATRACE_NAME(String.format("AssetManager::OpenNonAssetFd(%s)", asset_path_utf8));

    CppAssetManager2 assetmanager = AssetManagerFromLong(ptr);
    Asset asset;
    if (cookie.intValue() != kInvalidCookie) {
      asset = assetmanager.OpenNonAsset(asset_path_utf8, cookie, Asset.AccessMode.ACCESS_RANDOM);
    } else {
      asset = assetmanager.OpenNonAsset(asset_path_utf8, Asset.AccessMode.ACCESS_RANDOM);
    }

    if (!isTruthy(asset)) {
      throw new FileNotFoundException(asset_path_utf8);
    }
    return ReturnParcelFileDescriptor(asset, out_offsets);
  }
@ Implementation ( minSdk = P ) protected static @ Nullable ParcelFileDescriptor nativeOpenNonAssetFd ( long ptr , int jcookie , @ NonNull String asset_path , @ NonNull long [ ] out_offsets ) throws IOException { ApkAssetsCookie cookie = JavaCookieToApkAssetsCookie ( jcookie ) ; String asset_path_utf8 = asset_path ; if ( asset_path_utf8 == null ) { // This will throw NPE. return null ; } ATRACE_NAME ( String . format ( "AssetManager::OpenNonAssetFd(%s)" , asset_path_utf8 ) ) ; CppAssetManager2 assetmanager = AssetManagerFromLong ( ptr ) ; Asset asset ; if ( cookie . intValue ( ) != kInvalidCookie ) { asset = assetmanager . OpenNonAsset ( asset_path_utf8 , cookie , Asset . AccessMode . ACCESS_RANDOM ) ; } else { asset = assetmanager . OpenNonAsset ( asset_path_utf8 , Asset . AccessMode . ACCESS_RANDOM ) ; } if ( ! isTruthy ( asset ) ) { throw new FileNotFoundException ( asset_path_utf8 ) ; } return ReturnParcelFileDescriptor ( asset , out_offsets ) ; }
jstring asset_path, jlongArray out_offsets) {
jstring asset_path jlongArray out_offsets ) {