@@ -180,9 +180,13 @@ protected override int ReadByte()
180180 /// <returns>实际读取了多少字节。</returns>
181181 protected override int Read ( byte [ ] buffer , int startIndex , int length )
182182 {
183+ #if UNITY_2019_1_OR_NEWER
184+ sbyte [ ] result = null ;
185+ #else
183186 byte [ ] result = null ;
187+ #endif
184188 int bytesRead = InternalRead ( length , out result ) ;
185- Array . Copy ( results , 0 , buffer , startIndex , bytesRead ) ;
189+ Array . Copy ( result , 0 , buffer , startIndex , bytesRead ) ;
186190 return bytesRead ;
187191 }
188192
@@ -243,9 +247,17 @@ private int InternalRead()
243247 return m_FileStream . Call < int > ( "read" ) ;
244248 }
245249
250+ #if UNITY_2019_1_OR_NEWER
251+ private int InternalRead ( int length , out sbyte [ ] result )
252+ #else
246253 private int InternalRead ( int length , out byte [ ] result )
254+ #endif
247255 {
256+ #if UNITY_2019_1_OR_NEWER
257+ IntPtr resultPtr = AndroidJNI . NewSByteArray ( length ) ;
258+ #else
248259 IntPtr resultPtr = AndroidJNI . NewByteArray ( length ) ;
260+ #endif
249261 int offset = 0 ;
250262 int bytesLeft = length ;
251263 while ( bytesLeft > 0 )
@@ -263,7 +275,12 @@ private int InternalRead(int length, out byte[] result)
263275 bytesLeft -= bytesRead ;
264276 }
265277
278+ #if UNITY_2019_1_OR_NEWER
279+ result = AndroidJNI . FromSByteArray ( resultPtr ) ;
280+ #else
266281 result = AndroidJNI . FromByteArray ( resultPtr ) ;
282+ #endif
283+
267284 AndroidJNI . DeleteLocalRef ( resultPtr ) ;
268285 return offset ;
269286 }
0 commit comments