此处将为大家介绍关于android–实现包含List的Parcelable接口的Object抛出NullPointerException的详细内容,并且为您解答有关list包含list的相关问题,此外
此处将为大家介绍关于android – 实现包含List的Parcelable接口的Object抛出NullPointerException的详细内容,并且为您解答有关list包含list的相关问题,此外,我们还将为您介绍关于Android ActionBar NullPointerException、Android ContentResolver.insert() 抛出 NullPointerException、Android gradle插件更新到3.3.0抛出NullPointerException、Android Library项目说nullpointerexception的有用信息。
本文目录一览:- android – 实现包含List的Parcelable接口的Object抛出NullPointerException(list包含list)
- Android ActionBar NullPointerException
- Android ContentResolver.insert() 抛出 NullPointerException
- Android gradle插件更新到3.3.0抛出NullPointerException
- Android Library项目说nullpointerexception
android – 实现包含List的Parcelable接口的Object抛出NullPointerException(list包含list)
我正在尝试使用Parcelable接口创建一个包含可对象列表的对象.我无法读回Parcel对象.
谁能指出我正确的方向?我在这里错过了什么?
MyParcelable对象:
public class MyParcelable implements Parcelable {
private int myInt = 0;
private List<MyListClass> arrList;
public List<MyListClass> getArrList() {
return arrList;
}
public void setArrList(List<MyListClass> arrList) {
this.arrList = arrList;
}
public int getMyInt() {
return myInt;
}
public void setMyInt(int myInt) {
this.myInt = myInt;
}
MyParcelable() {
// initialization
arrList = new ArrayList<MyListClass>();
}
public MyParcelable(Parcel in) {
myInt = in.readInt();
in.readTypedList(arrList, MyListClass.CREATOR);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writetoParcel(Parcel outParcel, int flags) {
outParcel.writeInt(myInt);
outParcel.writeTypedList(arrList);
}
public static final Parcelable.Creator<MyParcelable> CREATOR =
new Parcelable.Creator<MyParcelable>() {
@Override
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
@Override
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
}
MyListClass对象:
public class MyListClass implements Parcelable{
private int test;
public MyListClass()
{}
public MyListClass(Parcel read){
test = read.readInt();
}
public int gettest() {
return test;
}
public void setTest(int test) {
this.test = test;
}
public static final Parcelable.Creator<MyListClass> CREATOR =
new Parcelable.Creator<MyListClass>() {
@Override
public MyListClass createFromParcel(Parcel source) {
return new MyListClass(source);
}
@Override
public MyListClass[] newArray(int size) {
return new MyListClass[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writetoParcel(Parcel arg0, int arg1) {
arg0.writeInt(test);
}
}
解决方法:
问题是,当MyParcelable对象的创建者调用从中重构对象的Parcel的私有构造函数时,ArrayList仍然未初始化,因此为null.
现在,方法调用readTypedList()尝试将Parcels内容写入您指定的ArrayList,该ArrayList抛出NullPointerEception,因为它尚未初始化.
解决方案是在调用该方法之前初始化ArrayList.
public MyParcelable(Parcel in) {
myInt = in.readInt();
arrList = new ArrayList<MyListClass>();
in.readTypedList(arrList, MyListClass.CREATOR);
}
Android ActionBar NullPointerException
这是我的MainActivity:
public void onCreate(Bundle savedInstanceState) { this.requestwindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.login); ActionBar actionBar = getActionBar(); actionBar.show(); //more code............
这是logcat:
03-04 16:31:09.423: E/AndroidRuntime(1441): FATAL EXCEPTION: main 03-04 16:31:09.423: E/AndroidRuntime(1441): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.salebook/com.example.salebook.MainActivity}: java.lang.NullPointerException 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2180) 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.app.ActivityThread.access$600(ActivityThread.java:141) 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.os.Handler.dispatchMessage(Handler.java:99) 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.os.Looper.loop(Looper.java:137) 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.app.ActivityThread.main(ActivityThread.java:5041) 03-04 16:31:09.423: E/AndroidRuntime(1441): at java.lang.reflect.Method.invokeNative(Native Method) 03-04 16:31:09.423: E/AndroidRuntime(1441): at java.lang.reflect.Method.invoke(Method.java:511) 03-04 16:31:09.423: E/AndroidRuntime(1441): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 03-04 16:31:09.423: E/AndroidRuntime(1441): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 03-04 16:31:09.423: E/AndroidRuntime(1441): at dalvik.system.NativeStart.main(Native Method) 03-04 16:31:09.423: E/AndroidRuntime(1441): Caused by: java.lang.NullPointerException 03-04 16:31:09.423: E/AndroidRuntime(1441): at com.example.salebook.MainActivity.onCreate(MainActivity.java:130) 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.app.Activity.performCreate(Activity.java:5104) 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 03-04 16:31:09.423: E/AndroidRuntime(1441): at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2144) 03-04 16:31:09.423: E/AndroidRuntime(1441): ... 11 more
第130行是anctionBar.show(),我在res / menu / menu.xml中:
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/itemid_0" android:title="Action Item 0" android:icon="@drawable/ic_launcher" android:orderInCategory="0" android:showAsAction="ifRoom|withText" /> <item android:id="@+id/itemid_1" android:title="Action Item 1" android:orderInCategory="0" /> <item android:id="@+id/itemid_2" android:title="Action Item 2" android:orderInCategory="0" /> <item android:id="@+id/itemid_3" android:title="Action Item 3" android:orderInCategory="0" /> </menu>
我没有发现问题.希望有人帮助我.
谢谢.
另外,在appThem风格:
<style name="AppTheme" parent="AppBaseTheme"> <item name="android:windowActionBar">true</item> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style>
解决方法
确保您具有显示操作栏的窗口功能,这是操作栏显示所必需的.有关详细信息,请查看以下链接.
…检查此问题getActionBar returns null并查看此链接以获取有关您的问题http://blog.perpetumdesign.com/2011/08/strange-case-of-dr-action-and-mr-bar.html的更多信息
Android ContentResolver.insert() 抛出 NullPointerException
如何解决Android ContentResolver.insert() 抛出 NullPointerException?
我正在尝试将一些音频文件(m4a、mp3...)添加到 MediaStore 的音频收藏中,以便其他音乐应用程序可以列出它们。为了简单起见,我只是复制了文档中的内容。 ( https://developer.android.com/training/data-storage/shared/media )
所以在活动的 onCreate() 方法中我写了这个:
val resolver = applicationContext.contentResolver
val audioCollection =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
MediaStore.Audio.Media.getContentUri(
MediaStore.VOLUME_EXTERNAL_PRIMARY
)
} else {
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
}
val songDetails = ContentValues().apply {
put(MediaStore.Audio.Media.disPLAY_NAME,"Test Track")
}
resolver.insert(audioCollection,songDetails)
但是每次我启动它时,我都会得到以下信息:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ''int java.lang.String.lastIndexOf(int)'' on a null object reference
at android.os.Parcel.createException(Parcel.java:1972)
at android.os.Parcel.readException(Parcel.java:1934)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)
at android.content.ContentResolver.insert(ContentResolver.java:1593)
清单声明了 READ、WRITE 以及 MANAGE_EXTERNAL_STORAGE 权限,并在我设备上的 Android 应用设置中启用了这些存储权限。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
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 Library项目说nullpointerexception
我有一个android库项目my_lib基本上my_lib有list活动说MyListActivity它有资源和东西.当我运行Android应用程序’MyListActivity’工作正常.
但是当我创建另一个proj说test_proj并将my_lib作为android库项目添加到test_proj作为库并在AndroidManifest中添加MyListActivity活动并运行我在MyListActivity中得到NullPoiterException,即在findViewById(R.id.list)返回null.我怎样才能解决这个问题
代码如下
onCreate of MyListActivity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestwindowFeature(Window.FEATURE_NO_TITLE);
getwindow().addFlags(LayoutParams.FLAG_FULLSCREEN);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_main);
initData();
rowItems = new ArrayList<RowItem>();
for (int i = 0; i < titles.length; i++) {
RowItem item = new RowItem(images[i], titles[i], descriptions[i], packageNames[i]);
rowItems.add(item);
}
listView = (ListView) findViewById(R.id.list);
CustomListViewAdapter adapter = new CustomListViewAdapter(this, R.layout.list_item, rowItems);
listView.setAdapter(adapter);
listView.setonItemClickListener(this);
}
onCreate of MainActivity of test proj
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startActivity(new Intent(this, ImageTextListViewActivity.class));
}
错误日志如下
D/AndroidRuntime( 778): Shutting down VM
E/AndroidRuntime( 778): FATAL EXCEPTION: main
E/AndroidRuntime( 778): java.lang.NoSuchFieldError: com.mass.applist.R$id.list
E/AndroidRuntime( 778): at com.mass.applist.MyListActivity.onCreate(MyListActivity.java:55)
E/AndroidRuntime( 778): at android.app.Activity.performCreate(Activity.java:5104)
E/AndroidRuntime( 778): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
E/AndroidRuntime( 778): at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2144)
E/AndroidRuntime( 778): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
E/AndroidRuntime( 778): at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/AndroidRuntime( 778): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
E/AndroidRuntime( 778): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 778): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 778): at android.app.ActivityThread.main(ActivityThread.java:5041)
E/AndroidRuntime( 778): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 778): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 778): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime( 778): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime( 778): at dalvik.system.NativeStart.main(Native Method)
解决方法:
的setContentView(R.layout.activity_main);
确保lib中的布局和您的示例活动没有相同的名称.
今天关于android – 实现包含List的Parcelable接口的Object抛出NullPointerException和list包含list的讲解已经结束,谢谢您的阅读,如果想了解更多关于Android ActionBar NullPointerException、Android ContentResolver.insert() 抛出 NullPointerException、Android gradle插件更新到3.3.0抛出NullPointerException、Android Library项目说nullpointerexception的相关知识,请在本站搜索。
本文标签: