Can't create handler inside thread that has not called Looper.prepare()

请教,调用beaconManager = new com.aprilbrother.aprilbrothersdk.BeaconManager(getActivity());方法不执行,报出这个错误,求解

beaconManager 不支持在fragment中初始化

可是这并不是在fragment初始化的

贴下你的代码看看?

public class BaseActivity extends PluginBase{

 BeaconManager beaconManager;
BluetoothAdapter bluetoothAdapter;
BluetoothManager bluetoothManager;
final	Region region = new Region("apr", null, null, null) ;
ArrayList<Beacon> mybeacon;
 boolean mScanning;
 Handler mHandler;
 static final long SCAN_PERIOD = 10000;
 String datastring;

/*
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OpenBluetooth();
Init(true);
}
Activity getActivity()
{
return this;
}
void runSafelyOnUiThread(Runnable r) {
runSafelyOnUiThread(r, “”);
}
void runSafelyOnUiThread(Runnable r, String methodName) {
getActivity().runOnUiThread®;
}*/
public void sendmsg(String s)
{
BaseActivity.this.UnitySendMessage(“DataReceiver”,“test1”);

 }
//打开蓝牙
public void OpenBluetooth() 
{
 Looper.getMainLooper();
 BaseActivity.this.UnitySendMessage("DataReceiver", getActivity().toString());
 beaconManager = new  BeaconManager(getActivity());
 BaseActivity.this.UnitySendMessage("DataReceiver","openbluetooth");
	//BaseActivity.this.UnitySendMessage("DataReceiver","openbluetooth2");
/*if(!beaconManager.hasBluetooth())
{
	Toast.makeText(getActivity(), "Device does not have Bluetooth Low Energy",
			Toast.LENGTH_LONG).show();
	return;

}*/
 
bluetoothManager = (BluetoothManager)getActivity().getSystemService(Context.BLUETOOTH_SERVICE);
BaseActivity.this.UnitySendMessage("DataReceiver","openbluetooth3");
bluetoothAdapter = bluetoothManager.getAdapter();
BaseActivity.this.UnitySendMessage("DataReceiver","openbluetooth4");
if(bluetoothAdapter==null ||!bluetoothAdapter.isEnabled())
{
	Intent enabIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
	getActivity().startActivityForResult(enabIntent,1234);
} 
BaseActivity.this.UnitySendMessage("DataReceiver","openbluetooth5");

}
//初始化扫描设备
public void Init(boolean log) {
runSafelyOnUiThread(new Runnable() {

		@Override
		public void run() {
			// TODO Auto-generated method stub
			  
			mHandler = new Handler();
			scanLeDevice(true);
			
		}
	});	
	BaseActivity.this.UnitySendMessage("DataReceiver","Init");
}

看看?贴啦

试试创建Handler时用mHandler = new Handler(mContext.getMainLooper());
指定个Looper

好的 试试