diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSource.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSource.java index 6504562c58..808252fb15 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSource.java @@ -228,7 +228,8 @@ public final class DefaultDataSource implements DataSource { // Choose the correct source for the scheme. String scheme = dataSpec.uri.getScheme(); if (Util.isLocalFileUri(dataSpec.uri)) { - if (dataSpec.uri.getPath().startsWith("/android_asset/")) { + String uriPath = dataSpec.uri.getPath(); + if (uriPath != null && uriPath.startsWith("/android_asset/")) { dataSource = getAssetDataSource(); } else { dataSource = getFileDataSource(); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java b/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java index 8b1760b54a..9c2f426de5 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java @@ -204,7 +204,8 @@ public final class Util { } for (Uri uri : uris) { if ("http".equals(uri.getScheme()) - && !NetworkSecurityPolicy.getInstance().isCleartextTrafficPermitted(uri.getHost())) { + && !NetworkSecurityPolicy.getInstance() + .isCleartextTrafficPermitted(Assertions.checkNotNull(uri.getHost()))) { // The security policy prevents cleartext traffic. return false; } diff --git a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/manifest/SsUtil.java b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/manifest/SsUtil.java index 4adf6acff7..b54b2abc74 100644 --- a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/manifest/SsUtil.java +++ b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/manifest/SsUtil.java @@ -23,7 +23,9 @@ public final class SsUtil { /** Returns a fixed SmoothStreaming client manifest {@link Uri}. */ public static Uri fixManifestUri(Uri manifestUri) { - if (Util.toLowerInvariant(manifestUri.getLastPathSegment()).matches("manifest(\\(.+\\))?")) { + String lastPathSegment = manifestUri.getLastPathSegment(); + if (lastPathSegment != null + && Util.toLowerInvariant(lastPathSegment).matches("manifest(\\(.+\\))?")) { return manifestUri; } return Uri.withAppendedPath(manifestUri, "Manifest");