GVKun编程网logo

代码只会在抛出NullPointerException时返回0.0、0.0 GPS坐标(会抛出nullpointerexception异常的有)

18

在本文中,我们将为您详细介绍代码只会在抛出NullPointerException时返回0.0、0.0GPS坐标的相关知识,并且为您解答关于会抛出nullpointerexception异常的有的疑问

在本文中,我们将为您详细介绍代码只会在抛出NullPointerException时返回0.0、0.0 GPS坐标的相关知识,并且为您解答关于会抛出nullpointerexception异常的有的疑问,此外,我们还会提供一些关于Android gradle插件更新到3.3.0抛出NullPointerException、android – ContentResolver查询抛出nullpointerException、android – 隐藏片段中的actionbar会抛出NullPointerException吗?、Eclipse在Maven更新期间抛出NullPointerException的有用信息。

本文目录一览:

代码只会在抛出NullPointerException时返回0.0、0.0 GPS坐标(会抛出nullpointerexception异常的有)

代码只会在抛出NullPointerException时返回0.0、0.0 GPS坐标(会抛出nullpointerexception异常的有)

这是我对Android Location
API的第n次尝试,但我似乎无法使其正常运行。本教程似乎是最有前途的,但是我似乎只能让此代码返回GPS坐标0.0、0.0,这不是很有用…

getLocation()返回java.lang.NullPointerException错误似乎有些线索,但是我不确定我应该从哪里开始寻找它。

这是错误:

 W/System.err: java.lang.NullPointerException W/System.err:     at android.content.ContextWrapper.checkPermission(ContextWrapper.java:557)

我尝试制作一个新的权限块,粘贴在底部,但是它给出了相同的错误。

有人可以在这里指出正确的方向吗?

该代码分为两个类文件:MainActivity.java和GPSTracker.java。

GPSTracker.java

    package com.tutorial.android.location.api;// http://www.androidhive.xyz/2016/07/android-gps-location-manager-tutorial.html// with some modifications, especially for new permissionsimport android.Manifest;import android.app.Activity;import android.app.AlertDialog;import android.app.Service;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.pm.PackageManager;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.os.IBinder;import android.provider.Settings;import android.support.annotation.Nullable;import android.support.v4.app.ActivityCompat;import android.util.Log;public class GPSTracker extends Service implements LocationListener {    private String TAG = "¤¤";    private final Context mContext;    public GPSTracker(Context mContext) {        this.mContext = mContext;        this.getLocation();    }    boolean isGPSEnabled = false;    boolean isNetworkEnabled = false;    boolean canGetLocation = false;    Location location;    double latitude;    double longitude;    private static final long MIN_DISTANCE_CHANGE_FOR_UPDATE = 10; // 10 meters    private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 30 sec    protected LocationManager locationManager;    public Location getLocation() {        try {            if(locationManager == null) {                locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);            }            if(isGPSEnabled != true) {                isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);            }            if(isNetworkEnabled != true) {                isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);            }            if (!isGPSEnabled && !isNetworkEnabled) {                // no provider enabled :p                Log.e(TAG, "getLocation() no provider :(");            } else {                this.canGetLocation = true;                // get network location                if (isNetworkEnabled) {                    // permission block:                    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {                        // TODO: Consider calling                        //    ActivityCompat#requestPermissions                        // here to request the missing permissions, and then overriding                        //   public void onRequestPermissionsResult(int requestCode, String[] permissions,                        //                                          int[] grantResults)                        // to handle the case where the user grants the permission. See the documentation                        // for ActivityCompat#requestPermissions for more details.                        // return TODO;                    } else {                        Log.e(TAG, "getLocation() permission DENIED");                    }                    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATE, this);                    if(locationManager != null) {                        location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);                        if(location != null) {                            latitude = location.getLatitude();                            longitude = location.getLongitude();                        }                    }                }                // get GPS location                if(isGPSEnabled) {                    if(location == null) {                        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATE, this);                        Log.d(TAG, "getLocation() GPS Enabled");                        if(locationManager != null){                            location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);                            if(location != null) {                                latitude = location.getLatitude();                                longitude = location.getLongitude();                            }                        }                    }                }            }        } catch (Exception e) {            Log.e(TAG, "getLocation() ERROR...: " + e);            e.printStackTrace();        }        return location;    }    public double getLatitude() {        if(location != null) {            latitude = location.getLatitude();        }        return latitude;    }    public double getLongitude() {        if(location != null) {            longitude = location.getLongitude();        }        return longitude;    }    @Nullable    @Override    public IBinder onBind(Intent intent) {        return null;    }    @Override    public void onLocationChanged(Location location) {    }    @Override    public void onStatusChanged(String provider, int status, Bundle extras) {    }    @Override    public void onProviderEnabled(String provider) {        // GPS is ON        Log.d(TAG, "GPS is ON");    }    @Override    public void onProviderDisabled(String provider) {        // GPS is OFF        Log.d(TAG, "GPS is OFF");    }    // GPS dialog    public boolean canGetLocation() {        return this.canGetLocation;    }    // don''t really need this when testing    public void showSettingsAlert() {        AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext);        alertDialog.setTitle(R.string.gps_settings_title);        alertDialog.setMessage(R.string.gps_settings_msg);        alertDialog.setPositiveButton(R.string.gps_settings_word, new DialogInterface.OnClickListener() {            public void onClick(DialogInterface dialog, int which) {                Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);                mContext.startActivities(new Intent[]{intent}); // hm...            }        });        alertDialog.show();    }    public void stopUsingGPS() {        if(locationManager != null) {            locationManager.removeUpdates(GPSTracker.this);        }    }}

重写但仍无法在GPSTracker.java中工作的权限块:

int permissionCheck = ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);if(!(permissionCheck == PackageManager.PERMISSION_GRANTED)) {    if(ActivityCompat.shouldShowRequestPermissionRationale((Activity) mContext, Manifest.permission.ACCESS_FINE_LOCATION)) {        // explanation :p        Log.i(TAG, "NOpe...");    } else {        // request permission        Log.d(TAG, "Requestion new permission");        ActivityCompat.requestPermissions((Activity) mContext, new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, 1);    }}

MainActivity.java

package com.tutorial.android.location.api;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;public class MainActivity extends AppCompatActivity {    String TAG = "¤";    GPSTracker gps;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        gps = new GPSTracker(this);        if(gps.canGetLocation()) {            Log.i(TAG, "onCreate() GPS is ON");            Log.i(TAG, "onCreate() " + gps.getLatitude()+ ", " + gps.getLongitude());        } else {            Log.d(TAG, "onCreate() GPS is OFF");        }    }}

答案1

小编典典

本教程似乎是最有前途的

这真是糟糕的代码。

我似乎只能得到此代码以返回0.0、0.0的GPS坐标,这不是很有用

那是因为,如果getLastKnownLocation()碰巧返回一个位置,它将永远只有一个位置。不太可能这样做。

重写但仍无法在GPSTracker.java中工作的权限块:

这里有两个问题:

  1. 您不能从服务请求权限。

  2. 这不是真正的服务。该代码的作者选择创建一个扩展类,Service而该扩展类没有实际实现或正确使用服务。这是造成您的原因NullPointerException,因为未正确初始化Context

有人可以在这里指出正确的方向吗?

把所有这些扔掉。

FWIW,这是我使用LocationManagerAPI的示例应用程序。

食谱很简单:

步骤#1:LocationManager通过调用getSystemService(Context.LOCATION_SERVICE)some
获得一个Context。我碰巧做了一个片段:

  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setRetainInstance(true);    template=getActivity().getString(R.string.url);    mgr=(LocationManager)getActivity()      .getSystemService(Context.LOCATION_SERVICE);  }

步骤#2:调用requestUpdates(),传入实现的东西LocationListener。就我而言,这恰好是片段本身:

  @Override  @SuppressWarnings({"MissingPermission"})  public void onStart() {    super.onStart();    mgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3600000,      1000, this);  }

步骤#3:在onLocationChanged()您的中LocationListener,对Location您得到的进行一些操作,在我的情况下,执行AsyncTask以获得天气预报:

  @Override  public void onLocationChanged(Location location) {    new FetchForecastTask().execute(location);  }

步骤4:完成后致电removeUpdates()

  @Override  @SuppressWarnings({"MissingPermission"})  public void onStop() {    mgr.removeUpdates(this);    super.onStop();  }

就是这样(除了运行时权限之类的东西,我将其抽象为AbstractPermissionsActivity)。

如果需要,可以将其getLastKnownLocation()用作 优化 ,但不要依赖它。

Android gradle插件更新到3.3.0抛出NullPointerException

Android gradle插件更新到3.3.0抛出NullPointerException

我刚刚更新到Android Studio 3.3并尝试将Gradle插件更新为3.3.0但项目构建失败.

该项目是一个带有应用程序(使用该库)的库.尝试了一切:清除,重建,重置,删除.gradle目录,甚至没有运气重启计算机.任何的想法?

这是堆栈跟踪

org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':screenz_library'.
    |95 internal calls|
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.build.gradle.internal.crash.ExternalApiUsageException: java.lang.NullPointerException
    at com.android.build.gradle.internal.ApiObjectFactory.create(ApiObjectFactory.java:137)
    at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:777)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
    at com.android.build.gradle.BasePlugin.lambda$createTasks$4(BasePlugin.java:651)
    at com.android.build.gradle.internal.crash.CrashReporting$afterEvaluate$1.execute(crash_reporting.kt:37)
    at com.android.build.gradle.internal.crash.CrashReporting$afterEvaluate$1.execute(crash_reporting.kt)
    at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1$1.run(DefaultListenerBuildOperationDecorator.java:155)
    at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.reapply(DefaultUserCodeApplicationContext.java:58)
    at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1.run(DefaultListenerBuildOperationDecorator.java:152)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction.execute(DefaultListenerBuildOperationDecorator.java:149)
    at org.gradle.internal.event.broadcastdispatch$ActionInvocationHandler.dispatch(broadcastdispatch.java:91)
    at org.gradle.internal.event.broadcastdispatch$ActionInvocationHandler.dispatch(broadcastdispatch.java:80)
    at org.gradle.internal.event.Abstractbroadcastdispatch.dispatch(Abstractbroadcastdispatch.java:42)
    at org.gradle.internal.event.broadcastdispatch$Singletondispatch.dispatch(broadcastdispatch.java:230)
    at org.gradle.internal.event.broadcastdispatch$Singletondispatch.dispatch(broadcastdispatch.java:149)
    at org.gradle.internal.event.Abstractbroadcastdispatch.dispatch(Abstractbroadcastdispatch.java:58)
    at org.gradle.internal.event.broadcastdispatch$Compositedispatch.dispatch(broadcastdispatch.java:324)
    at org.gradle.internal.event.broadcastdispatch$Compositedispatch.dispatch(broadcastdispatch.java:234)
    at org.gradle.internal.event.Listenerbroadcast.dispatch(Listenerbroadcast.java:140)
    at org.gradle.internal.event.Listenerbroadcast.dispatch(Listenerbroadcast.java:37)
    at org.gradle.internal.dispatch.ProxydispatchAdapter$dispatchingInvocationHandler.invoke(ProxydispatchAdapter.java:93)
    at com.sun.proxy.$Proxy29.afterEvaluate(UnkNown Source)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:187)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:184)
    at org.gradle.api.internal.project.DefaultProject.stepEvaluationListener(DefaultProject.java:1418)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate.run(LifecycleProjectEvaluator.java:193)
    ... 95 more
Caused by: java.lang.NullPointerException
    at org.gradle.api.internal.tasks.DefaultTaskDependency.add(DefaultTaskDependency.java:185)
    at org.gradle.api.internal.AbstractTask$12.run(AbstractTask.java:430)
    at org.gradle.api.internal.tasks.TaskMutator.mutate(TaskMutator.java:40)
    at org.gradle.api.internal.AbstractTask.dependsOn(AbstractTask.java:428)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:169)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
    at com.google.gms.googleservices.GoogleServicesPlugin.handleVariant(GoogleServicesPlugin.groovy:206)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    at org.gradle.internal.Metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:479)
    at org.gradle.internal.Metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
    at org.gradle.internal.Metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:78)
    at org.codehaus.groovy.runtime.Metaclass.ClosureMetaClass.invokeOnDelegationObjects(ClosureMetaClass.java:398)
    at org.codehaus.groovy.runtime.Metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:338)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:177)
    at com.google.gms.googleservices.GoogleServicesPlugin$_setupPlugin_closure6.doCall(GoogleServicesPlugin.groovy:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    at org.codehaus.groovy.runtime.Metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
    at groovy.lang.Closure.call(Closure.java:418)
    at groovy.lang.Closure.call(Closure.java:434)
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
    at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
    at org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:167)
    at org.gradle.internal.ImmutableActionSet$SingletonSet.execute(ImmutableActionSet.java:225)
    at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:244)
    at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:233)
    at com.android.build.gradle.LibraryExtension.addVariant(LibraryExtension.java:93)
    at com.android.build.gradle.internal.ApiObjectFactory.create(ApiObjectFactory.java:134)
    ... 124 more

解决方法:

我在尝试其他事情的同时找到了解决方案.
出于某种原因,我在我的图书馆的gradle文件中有了Google Services插件,所以我删除了它并且项目构建没有问题.

我删除了这一行

apply plugin: 'com.google.gms.google-services'

android – ContentResolver查询抛出nullpointerException

android – ContentResolver查询抛出nullpointerException

我正在写一个基于 Android 2.3.3 htc令人难以置信的S的感应2.1的MMS / SMS应用程序.
现在,在尝试接收SMS / MMS的某个联系人列表时,我在查询中获得了FC.

这是一些代码:

Uri uri = Uri.parse("content://mms-sms/conversations/"+String.valueOf(thread_id));
ContentResolver cr = context.getContentResolver();
Cursor c= cr.query(uri,null,null);    //crashing here

logcat的:

05-22 15:24:24.273: E/AndroidRuntime(32087): FATAL EXCEPTION: main
05-22 15:24:24.273: E/AndroidRuntime(32087): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.uiu.messaging/com.uiu.messaging.ContactMessageChain}: java.lang.NullPointerException
05-22 15:24:24.273: E/AndroidRuntime(32087): at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:1816)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.app.ActivityThread.access$1500(ActivityThread.java:132)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.os.Looper.loop(Looper.java:143)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.app.ActivityThread.main(ActivityThread.java:4196)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at java.lang.reflect.Method.invokeNative(Native Method)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at java.lang.reflect.Method.invoke(Method.java:507)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at dalvik.system.NativeStart.main(Native Method)
05-22 15:24:24.273: E/AndroidRuntime(32087): Caused by: java.lang.NullPointerException
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.os.Parcel.readException(Parcel.java:1328)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:372)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.content.ContentProviderProxy.query(ContentProviderNative.java:408)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.content.ContentResolver.query(ContentResolver.java:264)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at com.uiu.messaging.Data.getContactChain(Data.java:319)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at com.uiu.messaging.ContactMessageChain.onCreate(ContactMessageChain.java:138)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
05-22 15:24:24.273: E/AndroidRuntime(32087):    at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:1780)
05-22 15:24:24.273: E/AndroidRuntime(32087):    ... 11 more

所有权限都被考虑在内.

任何帮助将不胜感激.

编辑:

遵循Mike的建议后,我在logcat中收到以下错误:

05-22 16:31:46.178: E/AndroidRuntime(1892): FATAL EXCEPTION: main
05-22 16:31:46.178: E/AndroidRuntime(1892): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.uiu.messaging/com.uiu.messaging.ContactMessageChain}: android.database.sqlite.sqliteException: near "*": Syntax error:,while compiling: SELECT * FROM (SELECT disTINCT date * 1 AS normalized_date,NULL AS * FROM sms WHERE (htc_category= 0 AND thread_id = 25 AND (type != 3 AND type > 0)) UNION SELECT disTINCT date * 1000 AS normalized_date,NULL AS * FROM pdu LEFT JOIN pending_msgs ON pdu._id = pending_msgs.msg_id WHERE (htc_category= 0 AND thread_id = 25 AND msg_Box != 3 AND (msg_Box > 0 AND msg_Box != 3 AND (m_type = 128 OR m_type = 132 OR m_type = 130))) ORDER BY normalized_date ASC)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:1816)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.app.ActivityThread.access$1500(ActivityThread.java:132)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.os.Looper.loop(Looper.java:143)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.app.ActivityThread.main(ActivityThread.java:4196)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at java.lang.reflect.Method.invokeNative(Native Method)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at java.lang.reflect.Method.invoke(Method.java:507)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at dalvik.system.NativeStart.main(Native Method)
05-22 16:31:46.178: E/AndroidRuntime(1892): Caused by: android.database.sqlite.sqliteException: near "*": Syntax error:,NULL AS * FROM pdu LEFT JOIN pending_msgs ON pdu._id = pending_msgs.msg_id WHERE (htc_category= 0 AND thread_id = 25 AND msg_Box != 3 AND (msg_Box > 0 AND msg_Box != 3 AND (m_type = 128 OR m_type = 132 OR m_type = 130))) ORDER BY normalized_date ASC)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:158)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:372)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.content.ContentProviderProxy.query(ContentProviderNative.java:408)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.content.ContentResolver.query(ContentResolver.java:264)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at com.uiu.messaging.Data.getContactChain(Data.java:318)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at com.uiu.messaging.ContactMessageChain.onCreate(ContactMessageChain.java:138)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
05-22 16:31:46.178: E/AndroidRuntime(1892):     at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:1780)
05-22 16:31:46.178: E/AndroidRuntime(1892):     ... 11 more

我不知道sql语句有什么问题……

解决方法

好的,修好了.诀窍是在投影中输入实际的列名.好像这个bug毕竟是android的.

android – 隐藏片段中的actionbar会抛出NullPointerException吗?

android – 隐藏片段中的actionbar会抛出NullPointerException吗?

我正在尝试隐藏片段中的动作栏.要做到这一点,我正在尝试使用getActivity().getActionBar().hide();,但确实会抛出异常NullPointerException.我确实尝试过使用getSupportActionBar()但是Eclipse没有显示自动完成它只显示getActionBar();

我该怎么做 ?

分段

public class MyFragment extends Fragment {
@Override
        public void onCreate(Bundle savedInstanceState) {           
            super.onCreate(savedInstanceState); 
            getActivity().getActionBar().hide();  //nullpointerexception in this line       
        }  
}

例外:

12-05 12:19:02.415: E/AndroidRuntime(16400): FATAL EXCEPTION: main
12-05 12:19:02.415: E/AndroidRuntime(16400): java.lang.NullPointerException
12-05 12:19:02.415: E/AndroidRuntime(16400):    at br.com.mypackage.myapp.frags.BatalhaSemOponenteFrag.onCreate(BatalhaSemOponenteFrag.java:71)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.support.v4.app.Fragment.performCreate(Fragment.java:1763)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:913)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:1126)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:454)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.os.Handler.handleCallback(Handler.java:730)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.os.Handler.dispatchMessage(Handler.java:92)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.os.Looper.loop(Looper.java:176)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at android.app.ActivityThread.main(ActivityThread.java:5419)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at java.lang.reflect.Method.invokeNative(Native Method)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at java.lang.reflect.Method.invoke(Method.java:525)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
12-05 12:19:02.415: E/AndroidRuntime(16400):    at dalvik.system.NativeStart.main(Native Method)

解决方法:

由于您使用的是v4支持片段,我假设您将使用appcompat进行活动.
您必须将从getActivity()获得的活动转换为实际活动,以便将活动识别为appcompat.

试试这个:

public class MyFragment extends Fragment {
@Override
    public void onCreate(Bundle savedInstanceState) {           
        super.onCreate(savedInstanceState); 
((YourActivity)getActivity()).getSupportActionBar().hide();
    }  
}

Eclipse在Maven更新期间抛出NullPointerException

Eclipse在Maven更新期间抛出NullPointerException

我一直在解决内部Eclipse错误两天。我正在运行Eclipse的最新Spring Tool
Suite版本,并且试图导入现有Maven项目的集合。每当执行此操作时,Eclipse都会引发NullPointerException,但“错误日志”视图中没有可用的堆栈跟踪。如果我指示Eclipse更新Maven项目(“
Maven”>“更新项目”),则会再次获得NullPointerException。这次,“错误日志”视图报告以下堆栈跟踪:

java.lang.NullPointerException
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualResource.getProjectRelativePaths(VirtualResource.java:119)
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualFile.getUnderlyingFiles(VirtualFile.java:104)
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualFile.getUnderlyingResources(VirtualFile.java:93)
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualResource.exists(VirtualResource.java:88)
    at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getNonBinaryComponentManifest(ManifestUtilities.java:124)
    at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getManifest(ManifestUtilities.java:81)
    at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getManifestClasspath(ManifestUtilities.java:147)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getManifestClasspath(J2EEModuleVirtualComponent.java:248)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.calculateManifestReferences(J2EEModuleVirtualComponent.java:368)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.cacheManifestReferences(J2EEModuleVirtualComponent.java:360)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:176)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:214)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:207)
    at org.eclipse.m2e.wtp.WebProjectConfiguratorDelegate.configureClasspath(WebProjectConfiguratorDelegate.java:386)
    at org.eclipse.m2e.wtp.WTPProjectConfigurator.configureClasspath(WTPProjectConfigurator.java:107)
    at org.eclipse.m2e.jdt.internal.DefaultClasspathManagerDelegate.populateClasspath(DefaultClasspathManagerDelegate.java:61)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:253)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:363)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:343)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:371)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.updateClasspath(BuildPathManager.java:191)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.mavenProjectChanged(BuildPathManager.java:180)
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.notifyProjectChangeListeners(ProjectRegistryManager.java:746)
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.applyMutableProjectRegistry(ProjectRegistryManager.java:865)
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:289)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration0(ProjectConfigurationManager.java:369)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:316)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:1)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:161)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:137)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:89)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1301)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:313)
    at org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob.runInWorkspace(UpdateMavenProjectJob.java:77)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

这是我尝试过的:

  • 我吹走了我的工作区并创建了一个新的工作区。多次。
  • 我已经吹走了我的Maven存储库,以便可以重新创建它。
  • 我已经重新安装了Spring Tool Suite。
  • 我尝试让Eclipse更新Maven信息库。
  • 我已经在本地SVN存储库中检查了合并冲突。(没有;这是新创建的来自树干的全新分支。)
  • 我已经检查了Eclipse中的Synchronize视图,看它是否有任何区别。(Eclipse远远不能识别任何可用于同步的项目。)
  • 我已经在Google上搜索了VirtualResource.getProjectRelativePaths()中发生的NullPointerExceptions。我在其他非常相似的地方找到了NullPointerExceptions,并且为它们尝试了一些建议,但都无济于事。

我对这个问题不知所措。Obi-Wan Kenobi,请帮助我,您是我唯一的希望。

关于代码只会在抛出NullPointerException时返回0.0、0.0 GPS坐标会抛出nullpointerexception异常的有的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Android gradle插件更新到3.3.0抛出NullPointerException、android – ContentResolver查询抛出nullpointerException、android – 隐藏片段中的actionbar会抛出NullPointerException吗?、Eclipse在Maven更新期间抛出NullPointerException等相关知识的信息别忘了在本站进行查找喔。

本文标签: