user1427211
user1427211

Reputation: 1

Android app always crashes

Can anyone please tell me what wrong? The app always crashes on device SE xperia X10. maybe it's the way I'm embedding ADMOB. It doesn't even show for a second. Any clues please? Everything seems to be alright in the XML and the manifest. Thank you

package com.taiic.template.admob;


import com.google.ads.AdRequest;
import com.google.ads.AdView;
import java.io.IOException;
import java.util.*;

import android.widget.*;
import android.view.View;
import android.view.View.OnClickListener;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.location.*;
import android.content.*;

import android.app.Activity;
import android.os.Bundle;

public class adMain extends Activity {

    Button addressButton;
    TextView locationText;
    TextView addressText;
    Location currentLocation;
    double currentLatitude;
    double currentLongitude;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);




    addressText = (TextView)findViewById(R.id.addressText);
    locationText = (TextView)findViewById(R.id.locationText);
    addressButton = (Button)findViewById(R.id.addressButton);

    this.addressText.setText("ready");

    LocationManager locationManager = 
        (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);

    LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {
            updateLocation(location);
        }
        public void onStatusChanged(
                String provider, int status, Bundle extras) {}
        public void onProviderEnabled(String provider) {}
        public void onProviderDisabled(String provider) {}
    };

    locationManager.requestLocationUpdates(
            LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

    this.addressButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v){
            getAddress();
        }
    });
}

void getAddress(){
    try{
        Geocoder gcd = new Geocoder(this, Locale.getDefault());
        List<Address> addresses = 
            gcd.getFromLocation(currentLatitude, currentLongitude,100);
        if (addresses.size() > 0) {
            StringBuilder result = new StringBuilder();
            for(int i = 0; i < addresses.size(); i++){
                Address address =  addresses.get(i);
                int maxIndex = address.getMaxAddressLineIndex();
                for (int x = 0; x <= maxIndex; x++ ){
                    result.append(address.getAddressLine(x));
                    result.append(",");
                }               
                result.append(address.getLocality());
                result.append(",");
                result.append(address.getPostalCode());
                result.append("\n\n");
            }
            addressText.setText(result.toString());
        }
    }
    catch(IOException ex){
        addressText.setText(ex.getMessage().toString());
    }
}

void updateLocation(Location location){
    currentLocation = location;
    currentLatitude = currentLocation.getLatitude();
    currentLongitude = currentLocation.getLongitude();
    locationText.setText(currentLatitude + ", " + currentLongitude);
}

AdView layout = (AdView)this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest();
adRequest.setTesting(true);
layout.loadAd(adRequest); 
}

And here is the catlog

07-13 00:10:59.451: D/AndroidRuntime(3735): Shutting down VM
07-13 00:10:59.451: W/dalvikvm(3735): threadid=1: thread exiting with uncaught exception (group=0x4001d560)
07-13 00:10:59.461: E/AndroidRuntime(3735): FATAL EXCEPTION: main
07-13 00:10:59.461: E/AndroidRuntime(3735): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.taiic.template.admob/com.taiic.template.admob.adMain}: java.lang.NullPointerException
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1581)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.app.ActivityThread.access$1500(ActivityThread.java:121)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.os.Looper.loop(Looper.java:123)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.app.ActivityThread.main(ActivityThread.java:3701)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at java.lang.reflect.Method.invokeNative(Native Method)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at java.lang.reflect.Method.invoke(Method.java:507)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at dalvik.system.NativeStart.main(Native Method)
07-13 00:10:59.461: E/AndroidRuntime(3735): Caused by: java.lang.NullPointerException
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.app.Activity.findViewById(Activity.java:1647)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at com.taiic.template.admob.adMain.<init>(adMain.java:102)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at java.lang.Class.newInstanceImpl(Native Method)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at java.lang.Class.newInstance(Class.java:1409)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
07-13 00:10:59.461: E/AndroidRuntime(3735):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
07-13 00:10:59.461: E/AndroidRuntime(3735):     ... 11 more

Upvotes: 0

Views: 295

Answers (1)

MH.
MH.

Reputation: 45493

The log is pretty clear about what's going wrong:

Caused by: java.lang.NullPointerException
at android.app.Activity.findViewById(Activity.java:1647)
at com.taiic.template.admob.adMain.<init>(adMain.java:102)

In the class adMain, on line 102, you are trying to inflate a view that does not exist in the activity's layout:

AdView layout = (AdView)this.findViewById(R.id.adView);

So the question is: did you actually add an AdView view (with id android:id="@+id/adView") to the layout defined in the main.xml file you're setting as content view on the activity? The error suggests you didn't.

Upvotes: 2

Related Questions