2015-09-13 55 views
0

我在我的应用程序中使用altbeacon库。一切工作开始后,好吧,但如果我从应用程序出来,她在后台我收到关于信标状态栏的通知。当我在此通知点击我得到这个错误:beaconManager给我错误,当应用程序从后台返回

Process: pl.hekko.kesser.beacontest, PID: 29929 
     java.lang.RuntimeException: Unable to start activity ComponentInfo{pl.hekko.kesser.beacontest/pl.hekko.kesser.beacontest.MainActivity}: java.lang.UnsupportedOperationException 
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202) 
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252) 
       at android.app.ActivityThread.access$800(ActivityThread.java:139) 
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200) 
       at android.os.Handler.dispatchMessage(Handler.java:102) 
       at android.os.Looper.loop(Looper.java:136) 
       at android.app.ActivityThread.main(ActivityThread.java:5103) 
       at java.lang.reflect.Method.invokeNative(Native Method) 
       at java.lang.reflect.Method.invoke(Method.java:515) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606) 
       at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.UnsupportedOperationException 
       at java.util.Collections$UnmodifiableCollection.add(Collections.java:928) 
       at pl.hekko.kesser.beacontest.MainActivity.onCreate(MainActivity.java:83) 
       at android.app.Activity.performCreate(Activity.java:5275) 
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166) 
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252) 
                at android.app.ActivityThread.access$800(ActivityThread.java:139) 
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200) 
                at android.os.Handler.dispatchMessage(Handler.java:102) 
                at android.os.Looper.loop(Looper.java:136) 

我的MainActivity线83:

beaconManager.getBeaconParsers().add(new BeaconParser(). 
       setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24")); 

我不知道这setBeaconLayout但似乎罚款一般工作。 有时应用程序不启动显示错误,但第二次点击图标启动应用程序。似乎同样的错误导致了这一点。

回答

0

问题是,只有当库第一次启动时才允许您配置活动的BeaconParser的列表,因此当您尝试第二次启动时会出现错误。

// Only execute the code below if only the default BeaconParser is active 
if (beaconManager.getBeaconParsers().size() == 1) { 
    // Put your BeaconParser setup code here 
    ... 
} 
:虽然这是比较容易在定制 ApplicationonCreate方法来做到这一点只有一次,你可以在 ActivityonCreate方法,如果你在一个if语句像这样把它包装做到这一点
相关问题