AltBeacon应用程序在Android选项卡上崩溃

AltBeacon应用程序在Android选项卡上崩溃,android,ibeacon-android,altbeacon,Android,Ibeacon Android,Altbeacon,我一直在尝试使用AltBeacon监控示例代码来监控我的Kontakt.io信标,如下所述。我可以在我的android studio(1.0.2)中导入库(android-beacon-library-2.1.3.aar),并且监控代码中没有错误。但是当我想在我的标签(LG标签7 API 19)上运行它时,它会停止在屏幕上显示消息。 当我在MainActivity.java中使用import.时,我可以确保成功导入Altbeacon库,因为它出现在列表中。我没有以任何方式更改代码。 Logcat

我一直在尝试使用AltBeacon监控示例代码来监控我的Kontakt.io信标,如下所述。我可以在我的android studio(1.0.2)中导入库(android-beacon-library-2.1.3.aar),并且监控代码中没有错误。但是当我想在我的标签(LG标签7 API 19)上运行它时,它会停止在屏幕上显示消息。 当我在MainActivity.java中使用
import.
时,我可以确保成功导入Altbeacon库,因为它出现在列表中。我没有以任何方式更改代码。 Logcat说:

11988-11988/xxx.altbeeklibtest1 W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41747e48)
11988-11988/xxxx.altbeeklibtest1 E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: xxxx.altbeeklibtest1, PID: 11988
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{xxxx.altbeeklibtest1/xxxx.altbeeklibtest1.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
            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.NullPointerException
            at android.content.ContextWrapper.getPackageManager(ContextWrapper.java:94)
            at org.altbeacon.beacon.BeaconManager.verifyServiceDeclaration(BeaconManager.java:707)
            at org.altbeacon.beacon.BeaconManager.<init>(BeaconManager.java:233)
            at org.altbeacon.beacon.BeaconManager.getInstanceForApplication(BeaconManager.java:211)
            at com.example.shaffat.altbeeklibtest1.MainActivity.<init>(MainActivity.java:18)
            at java.lang.Class.newInstanceImpl(Native Method)
            at java.lang.Class.newInstance(Class.java:1208)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2119)
            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)
11988-11988/xxx.altbeeklibtest1 W/dalvikvm﹕ threadid=1:线程以未捕获异常退出(组=0x41747e48)
11988-11988/xxxx.altbeeklibtest1 E/AndroidRuntime﹕ 致命异常:主
流程:xxxx.altbeeklibtest1,PID:11988
java.lang.RuntimeException:无法实例化活动组件信息{xxxx.altbeeklibtest1/xxxx.altbeeklibtest1.MainActivity}:java.lang.NullPointerException
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)
在android.app.ActivityThread.access$800(ActivityThread.java:139)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5103)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.NullPointerException
位于android.content.ContextWrapper.getPackageManager(ContextWrapper.java:94)
位于org.altbeacon.beacon.BeaconManager.verifyServiceDeclaration(BeaconManager.java:707)
位于org.altbeacon.beacon.BeaconManager(BeaconManager.java:233)
位于org.altbeacon.beacon.BeaconManager.getInstanceForApplication(BeaconManager.java:211)
位于com.example.shaffat.altbeeklibtest1.MainActivity。(MainActivity.java:18)
位于java.lang.Class.newInstanceImpl(本机方法)
位于java.lang.Class.newInstance(Class.java:1208)
位于android.app.Instrumentation.newActivity(Instrumentation.java:1061)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2119)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)
在android.app.ActivityThread.access$800(ActivityThread.java:139)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5103)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
在dalvik.system.NativeStart.main(本机方法)

我做错了什么?非常感谢您的帮助

我需要查看调用
BeaconManager.getInstanceForApplication(context)
的代码才能确定,但堆栈跟踪表明此代码正在接收空上下文。传递的上下文必须是活动、应用程序或服务的非空有效实例。

我需要查看调用BeaconManager.getInstanceForApplication(上下文)的代码才能确定,但堆栈跟踪表明此代码正在接收空上下文。传递的上下文必须是活动、应用程序或服务的非空有效实例。

我需要查看调用BeaconManager.getInstanceForApplication(上下文)的代码才能确定,但堆栈跟踪表明此代码正在接收空上下文。传递的上下文必须是活动、应用程序或服务的非空有效实例。

我需要查看调用BeaconManager.getInstanceForApplication(上下文)的代码才能确定,但堆栈跟踪表明此代码正在接收空上下文。传递的上下文必须是活动、应用程序或服务的非空有效实例。

初始化beaconManager的示例如下:

private BeaconManager beaconManager = beaconManager.getInstanceForApplication(this);
您应该在活动的onCreate()方法中执行此操作

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);

    }

示例以这种方式初始化beaconManager:

private BeaconManager beaconManager = beaconManager.getInstanceForApplication(this);
您应该在活动的onCreate()方法中执行此操作

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);

    }

示例以这种方式初始化beaconManager:

private BeaconManager beaconManager = beaconManager.getInstanceForApplication(this);
您应该在活动的onCreate()方法中执行此操作

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);

    }

示例以这种方式初始化beaconManager:

private BeaconManager beaconManager = beaconManager.getInstanceForApplication(this);
您应该在活动的onCreate()方法中执行此操作

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);

    }

堆栈跟踪表明它是从类初始值设定项调用的,但在调用onCreate()之前,活动类没有有效的初始化上下文,因此,正如另一个答案所指出的,问题在于调用在活动代码中放错了位置。好的一点,@ChrisStratton。另一个答案是正确的。我将更新示例代码以反映这一点。堆栈跟踪表明它是从类初始值设定项调用的,但在调用onCreate()之前,活动类没有有效的初始化上下文,因此,正如另一个答案所指出的,问题是调用在活动代码中放错了位置。好的一点,@ChrisStratton。另一个答案是我