Articles of null

删除最后一项时,Recyclerview崩溃。 NullPointerException:android.view.ViewGroup $ LayoutParams android.view.View.getLayoutParams()

我有一个recyclerview,使用arraylist填充。 当我从列表中删除项目时,它可以正常工作,直到最后一项被删除。 下面是我的recyclerview适配器中的代码,它删除了一个项目。 public void removeItem(int position) { itemsData.remove(position); notifyItemRemoved(position); } 下面是崩溃日志。 日志不会将我引导到我的代码中的指定位置。 所以我不确定是什么导致了这个问题。 我做了一些测试并记录了位置。 如果我在arraylist中添加一个项目并在recyclerview中添加了notifyItemInserted项目的位置,则为0.如果我点击添加的项目,则位置为0,如果我删除该项目,则将其从位置0移除,但是将项目移除为位置0时崩溃。 java.lang.NullPointerException:尝试在android.support.v7.widget.OrientationHelper $ 2.getDecoratedStart(OrientationHelper)上的空对象引用上调用虚拟方法’android.view.ViewGroup $ LayoutParams android.view.View.getLayoutParams()’。 java:316)at android.support.v7.widget.LinearLayoutManager.findOneVisibleChild(LinearLayoutManager.java:1633)at android.support.v7.widget.LinearLayoutManager.findFirstVisibleChildClosestToStart(LinearLayoutManager.java:1453)at android.support.v7.widget .LinearLayoutManager.computeScrollOffset(LinearLayoutManager.java:997)在android.support.v7.widget.LinearLayoutManager.computeVerticalScrollOffset(LinearLayoutManager.java:969)的android.support.v7.widget.RecyclerView.computeVerticalScrollOffset(RecyclerView.java:1175)at at android.view.View.canScrollVertically(View.java:12835)在android.support.v4.view.ViewCompatICS.canScrollVertically(ViewCompatICS.java:35)android.support.v4.view.ViewCompat $ ICSViewCompatImpl.canScrollVertically(ViewC) ompat.java:1136)在Android.support的android.support.v4.view.ViewCompat.canScrollVertically(ViewCompat.java:1528)android.support的android.support.v7.widget.RecyclerView $ LayoutManager.onInitializeAccessibilityEvent(RecyclerView.java:6594) .v7.widget.RecyclerView $ LayoutManager.onInitializeAccessibilityEvent(RecyclerView.java:6573)android.support.v7.widget.LinearLayoutManager.onInitializeAccessibilityEvent(LinearLayoutManager.java:204)at android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityEvent(RecyclerViewAccessibilityDelegate) .java:66)在android.support.Av.AccessibilityDelegateCompat $ AccessInDeitgateJellyBeanImpl $ 1.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:228)android.support.v4.view.AccessibilityDelegateCompatJellyBean $ 1.onInitializeAccessibilityEvent(AccessibilityDelegateCompatJellyBean.java:56)at android。在android.view.View.sendAccessibilityEventUncheckedInternal(V)中查看.View.onInitializeAccessibilityEvent(View.java:5439) iew.java:5312)在android.sview.View.View $ AccessibilityDelegate.sendAccessibilityEventUnchecked(View.java:20823)android.support.AccessibilityAleibilityCompatIcs.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatIcs.java:117)at android.support.v4.view .AccessibilityDelegateCompat $ AccessibilityDelegateIcsImpl.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:210)at android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:358)at android.support.v4.view.AccessibilityDelegateCompat […]

Android – openContactPhotoInputStream为所有联系人照片ID返回NULL

升级到Android 4.0 ICS后,我的应用程序(包含带图像的联系人列表)停止加载这些联系人的图像。 调试后,似乎以下行总是返回NULL。 InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri); 我没有改变应用程序,在升级到ICS后就开始发生了这种情况。 我有权限READ_CONTACTS。 有谁知道为什么会发生这种情况? 他们可以改变什么? 这种方法是弃用还是什么? 完整代码: public static Bitmap loadContactPhoto(ContentResolver cr, long id) { Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id); InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri); if (input == null) { return null; } return BitmapFactory.decodeStream(input); }

Android FragmentActivity在getActionBar()中返回null

我在Android Studio中导入了一个名为Horizo​​ntalPaging的Android示例项目,运行时它可以正常工作。 但是当我将代码复制到我的代码中时, 我在getActionBar()中得到一个NULL指针exception 。 我一整天都在阅读这些问题,但无法让它发挥作用。 尝试将整个代码从示例的MainActivity复制到我的项目中但没有改进,所以我猜测问题出现在其他文件中,如清单,样式等。 从示例项目复制MainActivity.java import android.app.ActionBar; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import java.util.Locale; public class View_Tabs extends FragmentActivity implements ActionBar.TabListener { SectionsPagerAdapter mSectionsPagerAdapter; ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load […]

SDK更新到5.0后,getActionBar()返回null

在我将Android SDK更新到5.0版之后,getActionBar()方法开始返回null,导致我的应用程序在启动时崩溃。 我对导致这种情况的原因一无所知,任何现有的Stackoverflow线程都无济于事。 这是我的清单: styles.xml: 8dp 5dp 8dp 5dp 的themes.xml: @style/ActionBar @style/OverflowButton @style/ActionBar @style/OverflowButton @drawable/menu @color/main @color/main 和我的gradle依赖项: dependencies { compile ‘com.github.jenzz.undobar:library:1.1:api8Release@aar’ compile ‘com.android.support:support-v4:21.0.0’ compile ‘com.android.support:appcompat-v7:21.0.0’ compile ‘com.loopj.android:android-async-http:1.4.5’ compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.3’ compile ‘com.google.android.gms:play-services:6.1.+’ } 任何帮助是极大的赞赏!

ArrayList自动添加空项

大家好。 我正在制作一个词汇表App,我需要创建一个List (或ArrayList)。 为此,我创建了以下代码(仅作为示例): List tempSOLUTION = new ArrayList(); String temp = “abc123”; tempSOLUTION.add(temp); 我也尝试了以下内容: tempSOLUTION.add(new String(temp)); 它们都将项添加到列表中,但在调试时,我发现它的数组有12个对象,如下所示: [abc123, null, null, null, null, null, null, null, null, null, null, null] 我的问题是我不能拥有那些空项,因为这个新列表是HashableMap上的键,所以任何更改都会导致exception,因为键不存在。 使用调试器的列表(tempSOLUTION)详细信息的屏幕截图: http : //www.pabloarteaga.es/stackoverflow.jpg 如何在不创建所有空项的情况下将项添加到列表中? 搜索完成后,我find了如何删除这些空项的答案,即: tempSOLUTION.removeAll(Collections.singleton(null)); 但它不适用于我的目的。 提前致谢。

在nullpointerexception的情况下,Java vs Objective C.

为什么Java经常抛出空指针exception,如果我尝试访问空值而Objective C没有? Java的: public class SubscribeEmailActivity { String status; public static void main(String[] args){ if(Status.equals(null)||status.equals(“”){ // i am getting error here } } } 目标C: //in .h file NSString *exp; //in .m file if ([exp isEqualToString:NULL] ||[exp isEqualToString:@””]) { // i am not getting any error }

EditText.getText()。toString()有时返回“”

我在onTextChanged()方法中获得EditText的文本及其长度。 当我键入以添加字符时,它工作正常,但是当从文本中删除字符时,即使文本不为空, getText()也会为空。 这是随机发生的,而不是每次我删除字符。 我观察到这种情况主要发生在文本中有3-4个字符时我按退格键。 奇怪的是,这个问题只发生在设备上,而不是模拟器上。 布局文件: 代码: fromLocation.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (fromLocation == null) { Log.d(TAG, “fromLocation is null…………….”); } Log.d(TAG, “fromLocation […]

从手机运行时应用程序崩溃但从计算机启动时工作正常

经过3天的工作,我已经能够在我的设备上运行一个旧的应用程序了! 但只有当命令来自我的电脑时…… 我解释。 当我在手机上从Android Studio启动应用程序时,它启动很好,这很棒。 但是当我直接从我的手机启动它时,我在Catlog中得到一个String为空。 我不明白是什么原因造成这种情况..当我的电脑启动应用程序而不是通过手机启动应用程序时工作正常… 请帮忙! 编辑1 :添加AndroidManifest.xml活动 编辑2 :错误日志 01-08 16:08:47.194 26704-26704/ca.gggolf.aminutegolf E/ACRA: ACRA caught a RuntimeException for ca.gggolf.aminutegolf java.lang.RuntimeException: Unable to start activity ComponentInfo{ca.gggolf.aminutegolf/ca.gggolf.aminutegolf.LoginActivity}: java.lang.NullPointerException: Attempt to invoke virtual method ‘java.lang.String[] java.lang.String.split(java.lang.String)’ on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413) at android.app.ActivityThread.access$800(ActivityThread.java:155) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5343) […]

在调用之前,如何确保另一个Thread的Handler不为null?

有一天,当我试图使用在另一个线程上创建的Handler向该线程发送消息时,我的程序抛出了NullPointerException。 尽管调用线程已经在另一个线程上调用了start,但是另一个线程创建的Handler尚未创建,或者尚未对调用线程可见。 这种情况很少发生。 几乎每次测试都没有得到例外。 我想知道什么是最好的方法来避免这个问题,确保最小的复杂性和性能损失。 该程序是一款游戏,性能非常敏感,特别是一旦运行。 因此,我尝试避免在设置后使用同步,例如,并且宁愿在任何时候避免旋转variables。 背景: 在Android中,Handler类可用于“将行为排入队列,而不是在您自己的线程上执行”。 这里的文件: http://developer.android.com/intl/de/reference/android/os/Handler.html 必须在将使用它的线程上创建处理程序。 因此,在创建该线程的线程运行的线程的构造函数中创建它不是一个选项。 当Handler用于UI线程以外的线程时,还必须使用Looper类: http://developer.android.com/intl/de/reference/android/os/Looper.html 该文档给出了为此目的使用这两个类的示例: class LooperThread extends Thread { public Handler mHandler; public void run() { Looper.prepare(); mHandler = new Handler() { public void handleMessage(Message msg) { // process incoming messages here } }; Looper.loop(); } } 我非常丑陋的解决方案目前看起来像这样: public class LooperThread extends Thread […]

在Java中,如何检查floatvariables是否为空?

看来,当涉及到* value.getFloat(“Value_Quotient”,quotient_Float)== null *时,它遇到了一个问题。 我该如何解决? private void Store() { quotient_Float = posture_error/time; if(value.getFloat(“Value_Quotient”, quotient_Float)==null || quotient_Float < value.getFloat("Value_Quotient", quotient_Float)) { editor.putFloat("Value_Quotient", quotient_Float); editor.commit(); } }