diff --git a/runtime/interpreter/unstarted_runtime.cc b/runtime/interpreter/unstarted_runtime.cc
index 1b08e80..281f332 100644
--- a/runtime/interpreter/unstarted_runtime.cc
+++ b/runtime/interpreter/unstarted_runtime.cc
@@ -19,6 +19,8 @@
 #include <cmath>
 #include <unordered_map>
 
+#include "ScopedLocalRef.h"
+
 #include "base/logging.h"
 #include "base/macros.h"
 #include "class_linker.h"
@@ -467,18 +469,21 @@
   JNIEnv* env = self->GetJniEnv();
   DCHECK(env != nullptr);
   void* address = const_cast<void*>(reinterpret_cast<const void*>(dex_file->Begin()));
-  jobject byte_buffer = env->NewDirectByteBuffer(address, dex_file->Size());
-  if (byte_buffer == nullptr) {
+  ScopedLocalRef<jobject> byte_buffer(env, env->NewDirectByteBuffer(address, dex_file->Size()));
+  if (byte_buffer.get() == nullptr) {
     DCHECK(self->IsExceptionPending());
     return nullptr;
   }
 
   jvalue args[1];
-  args[0].l = byte_buffer;
-  return self->DecodeJObject(
-      env->CallStaticObjectMethodA(WellKnownClasses::com_android_dex_Dex,
-                                   WellKnownClasses::com_android_dex_Dex_create,
-                                   args));
+  args[0].l = byte_buffer.get();
+
+  ScopedLocalRef<jobject> dex(env, env->CallStaticObjectMethodA(
+      WellKnownClasses::com_android_dex_Dex,
+      WellKnownClasses::com_android_dex_Dex_create,
+      args));
+
+  return self->DecodeJObject(dex.get());
 }
 
 static void UnstartedDexCacheGetDexNative(
