Я пытаюсь написать плагин Android (.aar) для Unity3D и передать байтовый массив из C# методу Java, который должен заполнить его данными.
//C# code:
byte[] buffer = new byte[1024];
int bytesRead = myJavaObject.Call<int>( "read", buffer );
//buffer contains only zeros
//Java code:
public int read( byte[] buffer )
{
//fill buffer here...
return numOfBytesRead;
}
Что я получаю в своем журнале регистрации, это:
2020-02-12 16: 41: 22.717 23831-23855 /? W / Unity: AndroidJNIHelper.GetSignature: использование параметров байтов устарело, вместо этого используйте параметры SByte (имя файла: ./Runtime/Export/Debug/Debug.bindings.h Строка: 35)
Когда я использую sbyte[]
вместо byte[]
в моем коде C#, предупреждение исчезает, но массив, после вызова read, содержит только нули. Я дважды проверил, содержимое массива правильно в Java.