GVKun编程网logo

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'booleanjava.lang.String.equals(java.lang.Object)'

10

本文将带您了解关于java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'booleanjava.lang.String.equals的新内容,同时我们还将为您解

本文将带您了解关于java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'booleanjava.lang.String.equals的新内容,同时我们还将为您解释java.lang.Object'的相关知识,另外,我们还将为您提供关于Android sdk:java.lang.NullPointerException:尝试调用虚方法、android – java.lang.NullPointerException:尝试在空对象引用上调用虚方法’java.io.File com.parse.ParsePlugins.getParseDir()’、android – 尝试在空对象引用上调用虚方法’int java.lang.Object.hashCode()’、android – 由:java.lang.NullPointerException引起:尝试在空对象引用上调用虚方法’void …的实用信息。

本文目录一览:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'booleanjava.lang.String.equals(java.lang.Object)'

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'booleanjava.lang.String.equals(java.lang.Object)'

运行我的项目时出现错误。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.olympic/com.prima.olympic.ProductDetail}: java.lang.NullPointerException: Attempt to invoke virtual method ''boolean java.lang.String.equals(java.lang.Object)'' on a null object reference

这是完整的日志:

06-06 23:12:45.561: E/AndroidRuntime(17135): FATAL EXCEPTION: main06-06 23:12:45.561: E/AndroidRuntime(17135): Process: com.example.olympic, PID: 1713506-06 23:12:45.561: E/AndroidRuntime(17135): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.olympic/com.prima.olympic.ProductDetail}: java.lang.NullPointerException: Attempt to invoke virtual method ''boolean java.lang.String.equals(java.lang.Object)'' on a null object reference06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693)06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.app.ActivityThread.access$900(ActivityThread.java:177)06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.os.Handler.dispatchMessage(Handler.java:102)06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.os.Looper.loop(Looper.java:145)06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.app.ActivityThread.main(ActivityThread.java:5942)06-06 23:12:45.561: E/AndroidRuntime(17135):    at java.lang.reflect.Method.invoke(Native Method)06-06 23:12:45.561: E/AndroidRuntime(17135):    at java.lang.reflect.Method.invoke(Method.java:372)06-06 23:12:45.561: E/AndroidRuntime(17135):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389)06-06 23:12:45.561: E/AndroidRuntime(17135):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)06-06 23:12:45.561: E/AndroidRuntime(17135): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ''boolean java.lang.String.equals(java.lang.Object)'' on a null object reference06-06 23:12:45.561: E/AndroidRuntime(17135):    at com.prima.olympic.ProductDetail.onCreate(ProductDetail.java:85)06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.app.Activity.performCreate(Activity.java:6289)06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)06-06 23:12:45.561: E/AndroidRuntime(17135):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)

这是我的ProductDetail.java

public class ProductDetail extends Activity {Button btnAddtoShoppingList;Button btnDeleteShoppingList;TextView detail_productType;TextView detail_wdh;TextView detail_volume;TextView detail_weight;TextView detail_cont20;TextView detail_cont40;TextView detail_pack;TextView detail_quantity;TextView detail_colour;TextView detail_cetegories;TextView detail_series;TextView detail_price;ImageView detail_imageView;String shown_id, shown_type, shown_wdh, shown_volume, shown_weight, shown_cont20, shown_cont40, shown_pack, shown_quantity, shown_colour, shown_categories, shown_series, shown_price;String customer_id, error_message ;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_product_detail);    btnAddtoShoppingList = (Button)findViewById(R.id.btnAddtoShoppingList);    btnDeleteShoppingList = (Button)findViewById(R.id.btnDeleteShoppingList);    SharedPreferences userInformation = getApplicationContext().getSharedPreferences("userinfo", 0);    customer_id = userInformation.getString("customer_id", "none");    detail_productType = (TextView)findViewById(R.id.detail_productType);    detail_wdh = (TextView)findViewById(R.id.detail_wdh);    detail_volume = (TextView)findViewById(R.id.detail_volume);    detail_weight = (TextView)findViewById(R.id.detail_weight);    detail_cont20 = (TextView)findViewById(R.id.detail_cont20);    detail_cont40 = (TextView)findViewById(R.id.detail_cont40);    detail_pack = (TextView)findViewById(R.id.detail_pack);    detail_quantity = (TextView)findViewById(R.id.detail_quantity);    detail_colour = (TextView)findViewById(R.id.detail_colour);    detail_cetegories = (TextView)findViewById(R.id.detail_categories);    detail_series = (TextView)findViewById(R.id.detail_series);    detail_price = (TextView)findViewById(R.id.detail_price);    detail_imageView = (ImageView)findViewById(R.id.detail_imageView);    // Get Value from previous activity    Intent i = getIntent();    shown_id = i.getStringExtra("shown_id");    shown_type = i.getStringExtra("shown_type");    shown_wdh = i.getStringExtra("shown_wdh");    shown_volume = i.getStringExtra("shown_volume");    shown_weight = i.getStringExtra("shown_weight");    shown_cont20 = i.getStringExtra("shown_cont20");    shown_cont40 = i.getStringExtra("shown_cont40");    shown_pack = i.getStringExtra("shown_pack");    shown_quantity = i.getStringExtra("shown_quantity");    shown_colour = i.getStringExtra("shown_colour");    shown_categories = i.getStringExtra("shown_categories");    shown_series = i.getStringExtra("shown_series");    shown_price = i.getStringExtra("shown_price");    String checkOrigin = i.getStringExtra("from_activity");    if(checkOrigin.equals("shoppinglist")){        btnAddtoShoppingList.setVisibility(View.GONE);        btnDeleteShoppingList.setVisibility(View.VISIBLE);    }    Bitmap bitmap = (Bitmap) i.getParcelableExtra("shown_bitmap");    detail_productType.setText("PRODUCT TYPE        : "+shown_type);    detail_wdh.setText("W x D x H                                   : "+shown_wdh);    detail_volume.setText("VOLUME                                   : "+shown_volume);    detail_weight.setText("WEIGHT                                       : "+shown_weight);    detail_cont20.setText("CONT20                                   : "+shown_cont20);    detail_cont40.setText("CONT40                                   : "+shown_cont40);    detail_pack.setText("PACK                                               : "+shown_pack);    detail_quantity.setText("QUANTITY                           : "+shown_quantity);    detail_colour.setText("COLOUR                                   : "+shown_colour);    detail_cetegories.setText("CATEGORIES                   : "+shown_categories);    detail_series.setText("SERIES                                           : "+shown_series);    detail_price.setText("PRICE                                             : Rp "+shown_price);    detail_imageView.setImageBitmap(bitmap);    btnAddtoShoppingList.setOnClickListener(new View.OnClickListener()     {        @Override        public void onClick(View v)        {            addtoShoppingListTask addtoShoppingList = new addtoShoppingListTask();            addtoShoppingList.execute((Void) null);        }    });    btnDeleteShoppingList.setOnClickListener(new View.OnClickListener()     {        @Override        public void onClick(View v)        {            deleteShoppingListTask deletetoShoppingList = new deleteShoppingListTask();            deletetoShoppingList.execute((Void) null);        }    });}

谁能告诉我错误在哪里以及如何解决?如果有人可以帮助我,我将非常感激。

答案1

小编典典

您的字符串checkOriginnull这样给你一个NullPointerException。这是导致它的原因:

String checkOrigin = i.getStringExtra("from_activity");if(checkOrigin.equals("shoppinglist")){    btnAddtoShoppingList.setVisibility(View.GONE);    btnDeleteShoppingList.setVisibility(View.VISIBLE);}

字符串checkOriginnull因为您没有从接收任何值Intent。这可能是因为您忘记了传递以前的值Activity
但是,您可以检查一下String null是否存在,那么将不会执行这些操作。您可以通过以下方式做到这一点:

String checkOrigin = i.getStringExtra("from_activity");if(checkOrigin != null && checkOrigin.equals("shoppinglist")){    btnAddtoShoppingList.setVisibility(View.GONE);    btnDeleteShoppingList.setVisibility(View.VISIBLE);}

因此,如果checkOrigin为null,则将不会执行这些操作。

但我建议您检查Activity接收Intent来自的消息,以确保Intent正确发送和接收消息。

Android sdk:java.lang.NullPointerException:尝试调用虚方法

Android sdk:java.lang.NullPointerException:尝试调用虚方法

当我尝试在我的设备上调试应用程序并尝试在几个小时内摆脱它时,我收到此错误…并且无法弄清楚…如果有人能找到解决方案,那将是非常棒的,因为我想要尽快为我的应用发布新的更新..
07-05 22:45:02.550    2821-2821/davvarn.csgo_maps E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: davvarn.csgo_maps,PID: 2821
    java.lang.RuntimeException: Unable to start activity ComponentInfo{davvarn.csgo_maps/davvarn.csgo_maps.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setimageDrawable(android.graphics.drawable.Drawable)' on a null object reference
            at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2356)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2418)
            at android.app.ActivityThread.access$900(ActivityThread.java:154)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5289)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setimageDrawable(android.graphics.drawable.Drawable)' on a null object reference
            at davvarn.csgo_maps.MainActivity.changeContent(MainActivity.java:176)
            at davvarn.csgo_maps.MainActivity.onCreate(MainActivity.java:115)
            at android.app.Activity.performCreate(Activity.java:5990)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
            at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2309)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2418)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5289)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

我真的不知道如何粘贴MainActivity文件,因为我是Stackoverflow的新手.请让我知道如何,我会尝试.

解决方法

确保已初始化图像视图并使用XML中定义的正确ID.您可以像这样初始化ImageView:

ImageView imageView =(ImageView)findViewById(R.id.yourImageViewIDHere);

在onCreate调用setContentView之后,请执行此操作.

android – java.lang.NullPointerException:尝试在空对象引用上调用虚方法’java.io.File com.parse.ParsePlugins.getParseDir()’

android – java.lang.NullPointerException:尝试在空对象引用上调用虚方法’java.io.File com.parse.ParsePlugins.getParseDir()’

试图从Parse加载一个类,但是一旦我启动它,应用程序就会崩溃!
这是代码:
ListView listview;
List<ParSEObject> ob;
ProgressDialog mProgressDialog;
ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_big_board);
    new RemoteDataTask().execute();

}

private class RemoteDataTask extends AsyncTask<Void,Void,Void> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        mProgressDialog = new ProgressDialog(BigBoard.this);
        mProgressDialog.setTitle("Parse.com Simple ListView Tutorial");
        mProgressDialog.setMessage("Loading...");
        mProgressDialog.setIndeterminate(false);
        mProgressDialog.show();
    }

    @Override
    protected Void doInBackground(Void... params) {
        // Locate the class table named "Country" in Parse.com
        ParseQuery<ParSEObject> query = new ParseQuery<ParSEObject>(
                "Country");
        query.orderByDescending("_created_at");
        try {
            ob = query.find();
        } catch (ParseException e) {
            Log.e("Error",e.getMessage());
            e.printstacktrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        // Locate the listview in listview_main.xml
        listview = (ListView) findViewById(R.id.listview);
        // Pass the results into an ArrayAdapter
        adapter = new ArrayAdapter<String>(BigBoard.this,R.layout.listview_item);
        // Retrieve object "name" from Parse.com database
        for (ParSEObject country : ob) {
            adapter.add((String) country.get("Name"));
        }
        // Binds the Adapter to the ListView
        listview.setAdapter(adapter);
        // Close the progressdialog
        mProgressDialog.dismiss();
        // Capture button clicks on ListView items
        listview.setonItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent,View view,int position,long id) {
                // Send single item click data to SingleItemView Class
                Intent i = new Intent(BigBoard.this,SingleItemView.class);
                // Pass data "name" followed by the position
                i.putExtra("name",ob.get(position).getString("name")
                        .toString());
                // Open SingleItemView.java Activity
                startActivity(i);
            }
        });
    }
}

这就是我在logcat中获得的:

> 10-22 20:40:18.705  12588-12872/obx.com.futurister E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #3
    Process: obx.com.futurister,PID: 12588
    java.lang.RuntimeException: An error occurred while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:309)
            at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
            at java.util.concurrent.FutureTask.run(FutureTask.java:242)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
            at java.lang.Thread.run(Thread.java:818)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File com.parse.ParsePlugins.getParseDir()' on a null object reference
            at com.parse.Parse.getParseDir(Parse.java:315)
            at com.parse.ParseCorePlugins.getCurrentUserController(ParseCorePlugins.java:129)
            at com.parse.ParseUser.getCurrentUserController(ParseUser.java:55)
            at com.parse.ParseUser.getCurrentUserAsync(ParseUser.java:888)
            at com.parse.ParseQuery.getUserAsync(ParseQuery.java:938)
            at com.parse.ParseQuery$3.call(ParseQuery.java:1196)
            at com.parse.ParseQuery$3.call(ParseQuery.java:1193)
            at com.parse.ParseQuery.doWithRunningCheck(ParseQuery.java:1132)
            at com.parse.ParseQuery.findAsync(ParseQuery.java:1193)
            at com.parse.ParseQuery.findInBackground(ParseQuery.java:1161)
            at com.parse.ParseQuery.find(ParseQuery.java:981)
            at obx.com.futurister.BigBoard$RemoteDataTask.doInBackground(BigBoard.java:66)
            at obx.com.futurister.BigBoard$RemoteDataTask.doInBackground(BigBoard.java:44)
            at android.os.AsyncTask$2.call(AsyncTask.java:295)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
10-22 20:40:18.857  12588-12619/obx.com.futurister E/Surface﹕ getSlotFromBufferLocked: unkNown buffer: 0xb3a1fb90
10-22 20:40:18.955  12588-12619/obx.com.futurister E/Surface﹕ getSlotFromBufferLocked: unkNown buffer: 0xa96acbb0
10-22 20:40:18.996  12588-12588/obx.com.futurister E/WindowManager﹕ android.view.WindowLeaked: Activity obx.com.futurister.BigBoard has leaked window com.android.internal.policy.PhoneWindow$DecorView{a0f50b2 V.E...... R......D 0,0-1026,538} that was originally added here
            at android.view.ViewRootImpl.<init>(ViewRootImpl.java:368)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:299)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
            at android.app.Dialog.show(Dialog.java:319)
            at obx.com.futurister.BigBoard$RemoteDataTask.onPreExecute(BigBoard.java:56)
            at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:604)
            at android.os.AsyncTask.execute(AsyncTask.java:551)
            at obx.com.futurister.BigBoard.onCreate(BigBoard.java:40)
            at android.app.Activity.performCreate(Activity.java:6237)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
            at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2369)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

用doInBackground()方法猜测它的问题?我错过了什么吗?请帮忙,谢谢

解决方法

根据你的评论,我猜你还没有初始化Parse.
http://docs.parseplatform.org/android/guide/#local-datastore
public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        // Enable Local Datastore.
        Parse.enableLocalDatastore(this);

        // Register any ParSEObject subclass. Must be done before calling Parse.initialize()
        ParSEObject.registerSubclass(YourClass.class);

        Parse.initialize(this,"APPLICATION_ID","CLIENT_KEY");    
    }
}

确保将App类添加到清单中

android – 尝试在空对象引用上调用虚方法’int java.lang.Object.hashCode()’

android – 尝试在空对象引用上调用虚方法’int java.lang.Object.hashCode()’

我正在尝试实现Facebook登录按钮,但在尝试运行应用程序时我收到这些错误:

错误:

FATAL EXCEPTION: AsyncTask #4
Process:,PID: 4633
java.lang.NullPointerException: Attempt to invoke virtual method ''int java.lang.Object.hashCode()'' on a null object reference
    at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:746)
    at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:774)
    at com.facebook.internal.Utility.queryAppSettings(Utility.java:825)
    at com.facebook.login.widget.LoginButton$1.run(LoginButton.java:489)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)
com.android.vlada.sportisa E/GoogleApiAvailability: Google Play services is invalid. Cannot recover.

码:

public class MainActivity extends AppCompatActivity implements Googleapiclient.OnConnectionFailedListener {

    private Button buttonRegistrujSe,buttonPrijaviSeKaoGost,buttonPrijavaRegistrovaniKorisnik;
    private LoginButton loginButton;
    private CallbackManager callbackManager;
    private TextView info;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        FacebookSdk.sdkInitialize(getApplicationContext());
        setContentView(R.layout.activity_main);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FacebookSdk.sdkInitialize(getApplicationContext());

        GoogleSignInoptions gso = new GoogleSignInoptions.Builder(GoogleSignInoptions.DEFAULT_SIGN_IN)
                .requestemail()
                .build();

        Googleapiclient mGoogleapiclient;
        mGoogleapiclient = new Googleapiclient.Builder(this)
                .enableAutoManage(this /* FragmentActivity */,this /* OnConnectionFailedListener */)
                .addApi(Auth.GOOGLE_SIGN_IN_API,gso)
                .build();

        buttonRegistrujSe = (Button) (findViewById(R.id.button_registruj_se));
        buttonRegistrujSe.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this,RegistrationActivity.class);
                startActivity(i);
            }
        });

        buttonPrijaviSeKaoGost = (Button) (findViewById(R.id.button_prijavi_se_kao_gost));
        buttonPrijaviSeKaoGost.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i2 = new Intent(MainActivity.this,LoginGostActivity.class);
                startActivity(i2);
            }
        });

        buttonPrijavaRegistrovaniKorisnik = (Button) (findViewById(R.id.button_prijava_registrovani_korisnik));
        buttonPrijavaRegistrovaniKorisnik.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i3 = new Intent(MainActivity.this,LoginActivity.class);
                startActivity(i3);
            }
        });

        callbackManager = CallbackManager.Factory.create();
        setContentView(R.layout.activity_main);
        info = (TextView)findViewById(R.id.info);
        loginButton = (LoginButton)findViewById(R.id.connectWithFbButton);

        loginButton.registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                info.setText(
                        "User ID: "
                                + loginResult.getAccesstoken().getUserId()
                                + "\n" +
                                "Auth Token: "
                                + loginResult.getAccesstoken().getToken()
                );
            }

            @Override
            public void onCancel() {
                info.setText("Login attempt canceled.");
            }

            @Override
            public void onError(FacebookException e) {
                info.setText("Login attempt Failed.");
            }
        });    
    }    

    @Override
    protected void onActivityResult(int requestCode,int resultCode,Intent data) {
        callbackManager.onActivityResult(requestCode,resultCode,data);
    }    

    @Override
    protected void onDestroy() {
        super.onDestroy();
        System.exit(0);
    }

    @Override
    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {   
    }
}

布局代码

<com.facebook.login.widget.LoginButton
    android:id="@+id/connectWithFbButton"android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_above="@+id/sign_in_button"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="43dp" />

更新:在我删除MainActivity中的重复代码后,我仍然在尝试运行应用程序时收到相同的错误.我也按照要求附加了Manifest代码,所以这可能有帮助吗?感谢名单

<?xml version="1.0" encoding="utf-8"?>
<!-- To auto-complete the email text field in the login form with the user''s emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET" />

<permission
    android:name="com.android.vlada.sportisa.Entiteti.maps.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-feature
    android:glEsversion="0x00020000"
    android:required="true" />

<uses-permission android:name="com.android.vlada.sportisa.Entiteti.maps.permission.MAPS_RECEIVE" />

<Meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="AIzaSyAVb2JuN-5nbaVkGODivuXPJOF5OeRekzo" />
<Meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="@string/facebook_login" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity android:name=".MainActivity" />
    <activity android:name=".SplashActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".RegistrationActivity" />
    <activity android:name=".LoginActivity" />
    <activity android:name=".BiranjeAktivnosti" />
    <activity
        android:name=".Trazim"
        android:label="@string/title_activity_trazim"
        android:theme="@style/AppTheme" />
    <activity
        android:name=".Organizujem"
        android:label="@string/title_activity_organizujem"
        android:theme="@style/AppTheme" />
    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
</application>

解决方法

在活动之前在应用程序标记内添加
你现在拥有的是:

<Meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="AIzaSyAVb2JuN-5nbaVkGODivuXPJOF5OeRekzo" />
<Meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="@string/facebook_login" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity android:name=".MainActivity" />
    <activity android:name=".SplashActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

像这样在应用程序标记内移动元数据

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >

    <Meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyAVb2JuN-5nbaVkGODivuXPJOF5OeRekzo" />
    <Meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_login" />

    <activity android:name=".MainActivity" />
    <activity android:name=".SplashActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

android – 由:java.lang.NullPointerException引起:尝试在空对象引用上调用虚方法’void …

android – 由:java.lang.NullPointerException引起:尝试在空对象引用上调用虚方法’void …

我在堆栈溢出中浏览了一些问题,但它没有解决我的问题.

这是我的代码.

public class MenuListActivity extends ListActivity {
String MenuNames[] = {"Consultation","Medicine","diseases","Doctor"};
protected void onCreateView(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu_list);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,MenuNames);
    final ListView lv = (ListView) findViewById(R.id.listView1);

    lv.setAdapter(adapter);

    lv.setonItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent,View v,int position,long id) {

            if(position == 1) {
                //code specific to first list item    
                Intent myIntent = new Intent(v.getContext(),ConsultationActivity.class);
                startActivity(myIntent);
            }


        }

    }
     );

}

logcat的.

10-12 10:53:37.572: E/AndroidRuntime(10605): FATAL EXCEPTION: main
    10-12 10:53:37.572: E/AndroidRuntime(10605): Process: com.capstone.medicinehealthguide,PID:     10605
    10-12 10:53:37.572: E/AndroidRuntime(10605): java.lang.RuntimeException: Unable to start activity      ComponentInfo{com.capstone.medicinehealthguide/com.capstone.medicinehealthguide.MenuListActivity}: java.lang.NullPointerException: Attempt to invoke virtual method ''android.view.View android.view.View.findViewById(int)'' on a null object reference
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2255)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2317)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.access$800(ActivityThread.java:143)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.os.Handler.dispatchMessage(Handler.java:102)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.os.Looper.loop(Looper.java:135)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.main(ActivityThread.java:5070)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at java.lang.reflect.Method.invoke(Native Method)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at java.lang.reflect.Method.invoke(Method.java:372)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:836)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:631)
    10-12 10:53:37.572: E/AndroidRuntime(10605): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ''android.view.View android.view.View.findViewById(int)'' on a null object reference
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at com.capstone.medicinehealthguide.MenuListActivity.onCreate(MenuListActivity.java:24)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.Activity.performCreate(Activity.java:5720)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1102)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2208)
    10-12 10:53:37.572: E/AndroidRuntime(10605):    ... 10 more

XML文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.capstone.medicinehealthguide.MenuListActivity" >

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

</ListView>

我正在尝试创建一个具有列表视图的应用程序,当您单击它时,将打开另一个活动

解决方法

你实际上是在使用这个错误:

final ListView lv = (ListView) getListView().findViewById(R.id.listView1);

这里:

final ListView lv = (ListView) findViewById(R.id.listView1);

问题是,在您的系统中,您将获得列表视图,然后尝试从列表视图中获取列表视图.

尝试上面的选项,只需从内容视图中获取列表视图.

我们今天的关于java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'booleanjava.lang.String.equalsjava.lang.Object'的分享已经告一段落,感谢您的关注,如果您想了解更多关于Android sdk:java.lang.NullPointerException:尝试调用虚方法、android – java.lang.NullPointerException:尝试在空对象引用上调用虚方法’java.io.File com.parse.ParsePlugins.getParseDir()’、android – 尝试在空对象引用上调用虚方法’int java.lang.Object.hashCode()’、android – 由:java.lang.NullPointerException引起:尝试在空对象引用上调用虚方法’void …的相关信息,请在本站查询。

本文标签: