У меня есть функция JNI, которая передает android.graphics.Bitmap$Config
в качестве аргумента. Config
- внутренний класс Bitmap
. Когда я бегу javah я получаю неверная подпись заголовка (усечения, чтобы только один аргумент):JNI: javah управляет аргументами, которые являются внутренними классами
Landroid_graphics_Bitmap_Config
, который является эквивалентом:
Landroid/graphics/Bitmap/Config
вместо:
Landroid_graphics_Bitmap_00024Config
который является эквивалентом
Landroid/graphics/Bitmap$Config
То, что генерирует javah, неверно, поскольку JNI выдает ошибку для поиска _00024
представления $
для внутреннего класса. Мужчина для javah
, похоже, не предполагает каких-либо настроек для исправления этого. Это просто ограничение javah
?
Зачем JNI искать представление 0024, если javah его не генерирует? – EJP
См. Https://bugs.openjdk.java.net/browse/JDK-8145897 –
@EJP Ошибка в загрузке библиотеки в Android Studio, в которой определено, что она ищет подпись 00024, которой у меня не было Я использовал его непосредственно из джавы. Я предполагаю, что это ошибка Java, поэтому его странно, что javah не генерирует правильную подпись. Сообщение об ошибке - это то, что действительно послало меня на эту дикую охоту на гусей. В противном случае я бы понятия не имел о 00024/$. – Anthony