resources/src/main/java/org/robolectric/res/android/CppAssetManager.java
public Asset openNonAsset(final String fileName, AccessMode mode, Ref<Integer> outCookie) {
    synchronized (mLock) {
      //      AutoMutex _l(mLock);

      LOG_FATAL_IF(mAssetPaths.isEmpty(), "No assets added to AssetManager");

      /*
       * For each top-level asset path, search for the asset.
       */

      int i = mAssetPaths.size();
      while (i > 0) {
        i--;
        ALOGV("Looking for non-asset '%s' in '%s'\n", fileName,
            mAssetPaths.get(i).path.string());
        Asset pAsset = openNonAssetInPathLocked(
            fileName, mode, mAssetPaths.get(i));
        if (pAsset != null) {
          if (outCookie != null) {
            outCookie.set(i + 1);
          }
          return pAsset != kExcludedAsset ? pAsset : null;
        }
      }

      return null;
    }
  }
public Asset openNonAsset(final String fileName, AccessMode mode, Ref<Integer> outCookie) {
    synchronized (mLock) {
      //      AutoMutex _l(mLock);

      LOG_FATAL_IF(mAssetPaths.isEmpty(), "No assets added to AssetManager");

      /*
       * For each top-level asset path, search for the asset.
       */

      int i = mAssetPaths.size();
      while (i > 0) {
        i--;
        ALOGV("Looking for non-asset '%s' in '%s'\n", fileName,
            mAssetPaths.get(i).path.string());
        Asset pAsset = openNonAssetInPathLocked(
            fileName, mode, mAssetPaths.get(i));
        if (pAsset != null) {
          if (outCookie != null) {
            outCookie.set(i + 1);
          }
          return pAsset != kExcludedAsset ? pAsset : null;
        }
      }

      return null;
    }
  }
/*
Open a non-asset file as if it were an asset.

The "fileName" is the partial path starting from the application name.