Android 点击错误?开始一项新活动,还是包括另一项活动?

Android 点击错误?开始一项新活动,还是包括另一项活动?,android,onclick,Android,Onclick,我有一个应用程序,我想将QR阅读器添加为活动/模块 于是,我跟着读二维码。。 在这里工作很好 因此,我已将此代码添加到我的应用程序中,我想使用此活动,因为我已设计了一个新活动,点击它应启动Qr阅读器 但我得到了这个错误 我试过这个 Button b = (Button) findViewById(R.id.main); b.setOnClickListener(new View.OnClickListener() { public void onClick(View v) {

我有一个应用程序,我想将QR阅读器添加为活动/模块

于是,我跟着读二维码。。 在这里工作很好

因此,我已将此代码添加到我的应用程序中,我想使用此活动,因为我已设计了一个新活动,点击它应启动Qr阅读器

但我得到了这个错误

我试过这个

Button b = (Button) findViewById(R.id.main);
b.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
      Intent i = new Intent(Qdata.this,DecoderActivity.class);
      startActivity(i);
    }
这里DecoderActivity.calass是northig,但另一个应用程序或活动是Qr reader,这是上面的示例,因此我想将其包括在我的活动中……

这是在舱单上

   <activity
        android:name=".adata.Qdata"
        android:label="@string/app_name" >
        <intent-filter>
            <action   android:name="com.my.adata.Qdata" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <activity
        android:name=".adata.DecoderActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action   android:name="com.my.adata.DecoderActivity" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

实际上这里的adata是我应用程序中的另一个包。。。主包是com.my

因此,在com.my中,我有另一个用于QR的文件,我将这两个活动分开

这是一个错误

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my/com.my.adata.DecoderActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
at android.app.ActivityThread.access$600(ActivityThread.java:128)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4517)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:98)
at android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:91)
at android.support.v7.app.ToolbarActionBar.<init>(ToolbarActionBar.java:73)
at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:205)
at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:99)
at com.my.adata.DecoderActivity.onCreate(DecoderActivity.java:43)
at android.app.Activity.performCreate(Activity.java:4470)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) 
at android.app.ActivityThread.access$600(ActivityThread.java:128) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4517) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760) 
at dalvik.system.NativeStart.main(Native Method)
java.lang.RuntimeException:无法启动活动组件信息{com.my/com.my.adata.decodeActivity}:java.lang.NullPointerException
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)上
在android.app.ActivityThread.access$600(ActivityThread.java:128)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:4517)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.NullPointerException
位于android.support.v7.widget.ToolbarWidgetWrapper.(ToolbarWidgetWrapper.java:98)
位于android.support.v7.widget.ToolbarWidgetWrapper.(ToolbarWidgetWrapper.java:91)
在android.support.v7.app.ToolbarActionBar.(ToolbarActionBar.java:73)
在android.support.v7.app.AppCompateDelegateImplv7.setSupportActionBar(AppCompateDelegateImplv7.java:205)上
位于android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:99)
在com.my.adata.DecoderActivity.onCreate上(DecoderActivity.java:43)
位于android.app.Activity.performCreate(Activity.java:4470)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)上
在android.app.ActivityThread.access$600(ActivityThread.java:128)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:4517)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
在dalvik.system.NativeStart.main(本机方法)


有人能告诉我问题出在哪里吗…

在清单中做此更改

    <activity
            android:name="com.my.adata.Main"
            android:label="@string/app_name" >
            <intent-filter>
             <action android:name="android.intent.action.MAIN"/>
             <category android:name="android.intent.category.LAUNCHER">    
            </intent-filter>
        </activity>

        <activity
            android:name="com.my.adata.Qdata"
            android:screenOrientation="portrait">
           <intent-filter>
           <action   android:name="com.my.adata.Qdata" />
           <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
        </activity>

为什么要使用两个启动器活动尝试创建一个louncher活动,然后调用您的活动

<activity
    android:name=".adata.Main"
    android:label="@string/app_name" >
     <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

<activity
    android:name="com.my.adata.Qdata">
</activity>


在此处与qdata活动代码共享您的错误日志在qdata.class的第43行上发布您的准确堆栈跟踪和完整错误日志,检查第43行的nulll errorpost代码抱歉,相同的问题,我得到了相同的错误..这里Qdata在单独的活动中工作正常,但是如果我在我的活动中包含它,我得到了相同的错误error@don在Qdata活动中不能为负您将获得空指针,因此请检查此空指针。Qdata.calass是northig,但另一个是应用程序或活动是上面的例子中的Qr阅读器,所以我想在我的活动中包括它实际上这里Launcher是另一个活动,但即使我将其更改为Launcher,我也会得到相同的错误