2015-01-15 97 views
0

我知道这个版本不是用于生产目的,但我想知道这个例外只发生在我身上。 我有一个测试应用程序,当我尝试实例化一个BeaconManager我得到一个异常:Altbeacon android库2.1-beta2崩溃

Unable to instantiate activity ComponentInfo{com.example.radiustesting/com.example.radiustesting.MainActivity}: java.lang.NullPointerException 
    Caused by: java.lang.NullPointerException at android.content.ContextWrapper.getPackageManager(ContextWrapper.java:94) 
    at org.altbeacon.beacon.BeaconManager.verifyServiceDeclaration(BeaconManager.java:676) 
    at org.altbeacon.beacon.BeaconManager.<init>(BeaconManager.java:215) 

这是我简单的活动类

public class MainActivity extends Activity implements BeaconConsumer{ 
    protected static final String TAG = "RangingActivity"; 
    private BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this); 

    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main_layout); 
      beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0216,i:4-19,i:20-21,i:22-23,p:24-24")); 
      // set the duration of the scan to be 1.1 seconds 
      beaconManager.setBackgroundScanPeriod(1100l); 
      // set the time between each scan to be 1 hour (3600 seconds) 
      beaconManager.setBackgroundBetweenScanPeriod(1000); 

      beaconManager.bind(this); 

     } 
... 

是任何人得到同样的异常? THX

+0

又过早使用上下文语境...是有效的onCreate不 Selvin

+0

我有2.1.3版类似的问题,http://stackoverflow.com/questions/28962436/altbeacon- android-tab上的应用程序崩溃。你能解决这个问题吗? – rubikskube

+0

是的,你应该初始化beaconmanager,里面的onCreate方法 –

回答

0
public class MainActivity extends Activity implements BeaconConsumer{ 
    protected static final String TAG = "RangingActivity"; 
    private BeaconManager; 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_layout); 
     beaconManager = BeaconManager.getInstanceForApplication(this); 
     beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0216,i:4-19,i:20-21,i:22-23,p:24-24")); 
     // set the duration of the scan to be 1.1 seconds 
     beaconManager.setBackgroundScanPeriod(1100l); 
     // set the time between each scan to be 1 hour (3600 seconds) 
     beaconManager.setBackgroundBetweenScanPeriod(1000); 

     beaconManager.bind(this); 

    } 
+0

这是正确的。 – davidgyoung