для Java Я точно не знаю, в C это может быть действительно опасно, если вы опустите этот D в конце, так как он не изменит верхние байты, что может повлиять на то, что в вашей переменной лежит число, которое вы на самом деле не ставили в!
В Java у меня была действительно большая проблема с instatntiating BigDecimal - новый BigDecimal (0) и новый bigDecimal (0L) - это не то же самое, вы можете почувствовать это, если вы перенести свой код с Java 1.4 на Java 1,5. Не знаю, почему они были небрежны в этом, может быть, они должны были это сделать.
Просто ничего не делайте и удалите ваш setViewForPopups
вызов. Это не обязательно.
попробуйте это
<FrameLayout
android:id="@+id/container_pop_up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentTop="true"
android:layout_marginTop="16dp" />
GamesClient gamesClient = Games.getGamesClient(MainActivity.this,
GoogleSignIn.getLastSignedInAccount(this));
gamesClient.setViewForPopups(findViewById(R.id.container_pop_up));
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
.unlock(getString(R.string.achievement_example));