Android-студия Груп "недействительным андроид.смотреть.смотреть.setvisibility(инт) на объект null ссылка"
- Привет.
В настоящее время я собираю два проекта вместе, но моя плавающая кнопка внезапно заставила мое приложение рухнуть onclick. Мой журнал печатает эту ошибку
void android.view.View.setVisibility(int)' on a null object reference
Надеюсь, вы сможете помочь.
Плавающая Кнопка
</android.support.v4.widget.DrawerLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView" android:layout_alignParentEnd="true" android:layout_gravity="end|bottom" android:layout_marginEnd="22dp" app:backgroundTint="#114F84" app:fabSize="mini" android:src="@drawable/ic_add"/> </android.support.v4.widget.DrawerLayout>
Первый activity.java
public class home extends AppCompatActivity { private DrawerLayout drawer; TextView fadetxt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.index_layout); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { presentActivity(view); } }); } public void presentActivity(View view) { ActivityOptionsCompat options = ActivityOptionsCompat. makeSceneTransitionAnimation(this, view, "transition"); int revealX = (int) (view.getX() + view.getWidth() / 2); int revealY = (int) (view.getY() + view.getHeight() / 2); Intent intent = new Intent(this, MainActivity.class); intent.putExtra(MainActivity.EXTRA_CIRCULAR_REVEAL_X, revealX); intent.putExtra(MainActivity.EXTRA_CIRCULAR_REVEAL_Y, revealY); ActivityCompat.startActivity(this, intent, options.toBundle()); } }
Второе activity.java
public class MainActivity extends Activity implements View.OnClickListener { public static final String EXTRA_CIRCULAR_REVEAL_X = "EXTRA_CIRCULAR_REVEAL_X"; public static final String EXTRA_CIRCULAR_REVEAL_Y = "EXTRA_CIRCULAR_REVEAL_Y"; View rootLayout; private int revealX; private int revealY; // use a compound button so either checkbox or switch widgets work. private CompoundButton autoFocus; private CompoundButton useFlash; private TextView statusMessage; private TextView barcodeValue; private static final int RC_BARCODE_CAPTURE = 9001; private static final String TAG = "BarcodeMain"; public static final String DATA = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; public static Random RANDOM = new Random(); public static String randomString(int len) { StringBuilder sb = new StringBuilder(len); for (int i = 0; i < len; i++) { sb.append(DATA.charAt(RANDOM.nextInt(DATA.length()))); } return sb.toString(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); statusMessage = (TextView)findViewById(R.id.status_message); barcodeValue = (TextView)findViewById(R.id.barcode_value); autoFocus = (CompoundButton) findViewById(R.id.auto_focus); useFlash = (CompoundButton) findViewById(R.id.use_flash); autoFocus.setVisibility(View.INVISIBLE); useFlash.setVisibility(View.INVISIBLE); findViewById(R.id.read_barcode).setOnClickListener(this); TextView alpha = (TextView) findViewById(R.id.auto_focus); alpha.setText(randomString(6)); final Intent intent = getIntent(); rootLayout = findViewById(R.id.root_layout); if (savedInstanceState == null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && intent.hasExtra(EXTRA_CIRCULAR_REVEAL_X) && intent.hasExtra(EXTRA_CIRCULAR_REVEAL_Y)) { rootLayout.setVisibility(View.INVISIBLE); revealX = intent.getIntExtra(EXTRA_CIRCULAR_REVEAL_X, 0); revealY = intent.getIntExtra(EXTRA_CIRCULAR_REVEAL_Y, 0); ViewTreeObserver viewTreeObserver = rootLayout.getViewTreeObserver(); if (viewTreeObserver.isAlive()) { viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { revealActivity(revealX, revealY); rootLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this); } }); } } else { rootLayout.setVisibility(View.VISIBLE); } } protected void revealActivity(int x, int y) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { float finalRadius = (float) (Math.max(rootLayout.getWidth(), rootLayout.getHeight()) * 1.1); // create the animator for this view (the start radius is zero) Animator circularReveal = ViewAnimationUtils.createCircularReveal(rootLayout, x, y, 0, finalRadius); circularReveal.setDuration(400); circularReveal.setInterpolator(new AccelerateInterpolator()); // make the view visible and start the animation rootLayout.setVisibility(View.VISIBLE); circularReveal.start(); } else { finish(); } } protected void unRevealActivity() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { finish(); } else { float finalRadius = (float) (Math.max(rootLayout.getWidth(), rootLayout.getHeight()) * 1.1); Animator circularReveal = ViewAnimationUtils.createCircularReveal( rootLayout, revealX, revealY, finalRadius, 0); circularReveal.setDuration(400); circularReveal.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { rootLayout.setVisibility(View.INVISIBLE); finish(); } }); circularReveal.start(); } }
Что я уже пробовал:
Я нашел этот ответ на свою проблему, но не знаю, как реализовать его в своем коде:
java - android.view.View.setVisibility(int) завершает работу нового действия - переполнение стека[^]
Richard MacCutchan
Где происходит сбой и какая переменная является нулевой ссылкой?
Member 13864446
Это и есть ошибка:
атрибут стиля 'attr/windowActionbar (он же com.google.android.gms.samples.vision.barcodereader:attr/windowActionbar)' не найден.
Сообщение{kind=ERROR, text=error: атрибут стиля 'attr/windowActionbar (он же com.google.android.gms.samples.vision.barcodereader:attr/windowActionbar)' не найден., sources=[C:\Users\Asger\.gradle\caches\transforms-1\files-1.1\appcompat-v7-24.2.1.aar\22aa4d82dbd52e82cdcc22d3e831ded4\res\values-v21\values-v21.xml:3:5-91], исходное сообщение=, имя инструмента=необязательно.of(AAPT)}