2013-11-21 4 views
0

Я хочу сделать приложение для Android с помощью Bluetooth, и после некоторых исследований я наткнулся на this ANE. Я никогда не использовал ANE, но из того, что я понимаю, его реализация очень похожа на использование SWC. . После копирования АНХ в \ Lib пути и включения его в моем проекте я попытался сканирование устройств, как это было предложено на сайте:Ошибка # 1009 при использовании AS3 bluetooth ANE

if (Bluetooth.isSupported) { 
       trace("1!"); 
       bt = Bluetooth.currentAdapter(); 
       trace("2!"); 
       bt.addEventListener(BluetoothScanEvent.BLUETOOTH_DISCOVERY_STARTED, bluetoothScanEventHandeler); 
       bt.addEventListener(BluetoothScanEvent.BLUETOOTH_DEVICE_FOUND, bluetoothScanEventHandeler); 
       bt.addEventListener(BluetoothScanEvent.BLUETOOTH_DISCOVERY_FINISHED, bluetoothScanEventHandeler); 
       bt.scanForVisibleDevices(); 
      } 

По какой-то причине я получаю ошибку

Error #1009: Cannot access a property or method of a null object reference. 

Следы, которые я включил, указывают на bt = Bluetooth.currentAdapter();, но если я изменю Bluetooth.isSupported на Bluetooth.isSupported(), тогда я получаю там ту же ошибку.
Я убедился, что шаблон файла дескриптора приложения Adobe AIR (приложение xmlns) соответствует ANE.
У кого-то еще нет такой же проблемы, помогите?

+0

Вы включая ANES в самом проекте? Не уверен, как это работает в Flash Builder, но вам нужно добавить ANE в проект, а затем в свойствах проекта, выберите его для соответствующих платформ, иначе он не будет упакован с приложением –

+0

Да, ve включил его. – MikeEVMM

ответ

0

Я вижу, что вы используете флеш-разработку, с которой я не знаком, но это звучит как BlueTooth. Обычно ANE являются одноточечными и имеют метод getInstance(). После создания одного экземпляра BlueTooth больше не будет null, и вы сможете получить доступ к остальным его методам.

В Вашем проекте Вы обычно доступ АНХ как ..

var blueTooth:BlueTooth = Bluetooth.getInstance(); 
if(BlueTooth.isSupported) 
{ 
} 

или

if(BlueTooth.isSupported) 
{ 
    bt = BlueTooth.getInstance().currentAdapter(); 
} 
+0

В большинстве ANE (включая этот) 'isSupported' является« статическим »getter. Поэтому они правы в использовании «BlueTooth.isSupported» –

+0

Я согласен, но он сказал, что он разбился на getAdapter(), а не на isSupported(). Я все еще думаю, что он может неправильно инициализировать BlueTooth. Имеет смысл, что BlueTooth будет null, если вы не назовете его метод getInstance(). – Pedrom

+0

Нет, 'Ошибка: вызов возможно неопределенного метода getInstance через ссылку со статическим типом Class.' – MikeEVMM

Смежные вопросы