diff --git a/staticlibs/native/netjniutils/netjniutils.cpp b/staticlibs/native/netjniutils/netjniutils.cpp
index 8ed72b0..210c6c3 100644
--- a/staticlibs/native/netjniutils/netjniutils.cpp
+++ b/staticlibs/native/netjniutils/netjniutils.cpp
@@ -74,19 +74,19 @@
   // Since Android S, there is an NDK API to get a file descriptor present in libnativehelper.so.
   // libnativehelper is loaded into all processes by the zygote since the zygote uses it
   // to load the Android Runtime and is also a public library (because of the NDK API).
-  typedef int (*ndkGetFD_t)(JNIEnv*, jobject);
-  static const ndkGetFD_t ndkGetFD = []() -> ndkGetFD_t {
+  typedef int (*ndkGetFd_t)(JNIEnv*, jobject);
+  static const ndkGetFd_t ndkGetFd = []() -> ndkGetFd_t {
     void* handle = dlopen("libnativehelper.so", RTLD_NOLOAD | RTLD_NODELETE);
-    auto ndkGetFD = reinterpret_cast<ndkGetFD_t>(dlsym(handle, "AFileDescriptor_getFD"));
-    if (ndkGetFD == nullptr) {
+    auto ndkGetFd = reinterpret_cast<ndkGetFd_t>(dlsym(handle, "AFileDescriptor_getFd"));
+    if (ndkGetFd == nullptr) {
       __android_log_print(ANDROID_LOG_FATAL, LOG_TAG,
-                          "Failed to dlsym(AFileDescriptor_getFD): %s", dlerror());
+                          "Failed to dlsym(AFileDescriptor_getFd): %s", dlerror());
       dlclose(handle);
     }
-    return ndkGetFD;
+    return ndkGetFd;
   }();
 
-  return javaFd != nullptr ? ndkGetFD(env, javaFd) : -1;
+  return javaFd != nullptr ? ndkGetFd(env, javaFd) : -1;
 }
 
 }  //  namespace
diff --git a/staticlibs/testutils/hostdevice/com/android/testutils/MiscAsserts.kt b/staticlibs/testutils/hostdevice/com/android/testutils/MiscAsserts.kt
index a8c6b3c..efd9402 100644
--- a/staticlibs/testutils/hostdevice/com/android/testutils/MiscAsserts.kt
+++ b/staticlibs/testutils/hostdevice/com/android/testutils/MiscAsserts.kt
@@ -112,11 +112,10 @@
     }.size)
 }
 
-fun assertSameElements(expected: List<String?>, actual: List<String?>) {
-    val expectedSet: HashSet<String?> = HashSet<String?>(expected)
-    assertEquals(expectedSet.size.toLong(), expected.size.toLong(),
-            "expected list contains duplicates")
-    val actualSet: HashSet<String?> = HashSet<String?>(actual)
-    assertEquals(actualSet.size.toLong(), actual.size.toLong(), "actual list contains duplicates")
+fun <T> assertSameElements(expected: List<T>, actual: List<T>) {
+    val expectedSet: HashSet<T> = HashSet(expected)
+    assertEquals(expectedSet.size, expected.size, "expected list contains duplicates")
+    val actualSet: HashSet<T> = HashSet(actual)
+    assertEquals(actualSet.size, actual.size, "actual list contains duplicates")
     assertEquals(expectedSet, actualSet)
-}
+}
\ No newline at end of file
