Reputation: 121
I'm parsing data from my BooksAdapter to BookDetailActivity and I am getting a NumberFormatException: Invalid float: 16.0dip
error in my logcat.
I have searched the error online but I got only 3 search results which haven't been helpful.
'BookDetailActivity'
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book_detail);
Book book = getIntent().getParcelableExtra("Book");
}
'BooksAdapter'
@Override
public void onClick(View v) {
int position = getAdapterPosition();
Book selectedBook = books.get(position);
Intent intent = new Intent(v.getContext(), BookDetail.class);
intent.putExtra("Book", selectedBook);
v.getContext().startActivity(intent);
}
I expected the BookDetailActivity to be launched after the user clicks on an item from the RecyclerView. Instead, the app crashes.
(java;no:11 from logcat) = setContentView(R.layout.activity_book_detail);
Error from log cat is:
java.lang.RuntimeException: Unable to start activity ComponentInfo{www.frank.books/www.frank.books.BookDetail}: java.lang.NumberFormatException: Invalid float: "16.0dip" at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2429) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493) at android.app.ActivityThread.access$800(ActivityThread.java:166) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5590) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1280) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1096) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NumberFormatException: Invalid float: "16.0dip" at java.lang.StringToReal.invalidReal(StringToReal.java:63) at java.lang.StringToReal.parseFloat(StringToReal.java:310) at java.lang.Float.parseFloat(Float.java:300) at android.content.res.TypedArray.getFloat(TypedArray.java:300) at android.support.constraint.ConstraintLayout$LayoutParams.(ConstraintLayout.java:2822) at android.support.constraint.ConstraintLayout.generateLayoutParams(ConstraintLayout.java:1972) at android.support.constraint.ConstraintLayout.generateLayoutParams(ConstraintLayout.java:482) at android.view.LayoutInflater.rInflate(LayoutInflater.java:770) at android.view.LayoutInflater.inflate(LayoutInflater.java:499) at android.view.LayoutInflater.inflate(LayoutInflater.java:398) at android.view.LayoutInflater.inflate(LayoutInflater.java:354) at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at www.frank.books.BookDetail.onCreate(BookDetail.java:11) at android.app.Activity.performCreate(Activity.java:5447) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2393) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493) at android.app.ActivityThread.access$800(ActivityThread.java:166) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5590) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1280) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1096) at dalvik.system.NativeStart.main(Native Method)
[1]: https://i.sstatic.net/DZoCS.png
book_detail.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".BookDetail">
<ImageView
android:id="@+id/imgCover"
android:layout_width="163dp"
android:layout_height="184dp"
android:layout_marginTop="@dimen/standard_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvAuthors"
app:srcCompat="@drawable/book_open"
android:contentDescription="@string/todo"
android:layout_marginStart="@dimen/standard_margin"/>
<TextView
android:id="@+id/tvTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/standard_margin"
android:layout_marginTop="@dimen/standard_margin"
android:layout_marginEnd="@dimen/standard_margin"
android:text="@string/tv_title"
android:textSize="36sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvAuthors"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/standard_margin"
android:layout_marginTop="@dimen/standard_margin"
android:layout_marginEnd="@dimen/standard_margin"
android:text="@string/tv_subtitle"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
<TextView
android:id="@+id/tv_authors"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/standard_margin"
android:layout_marginTop="@dimen/standard_margin"
android:text="@string/tv_author"
android:textSize="18sp"
app:layout_constraintStart_toEndOf="@+id/imgCover"
app:layout_constraintTop_toBottomOf="@+id/tvAuthors" />
<TextView
android:id="@+id/tvPublisher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/standard_margin"
android:layout_marginTop="@dimen/standard_margin"
android:text="@string/tv_publisher"
android:textSize="16sp"
app:layout_constraintStart_toEndOf="@+id/imgCover"
app:layout_constraintTop_toBottomOf="@+id/tv_authors" />
<TextView
android:id="@+id/tvPublishedDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/standard_margin"
android:layout_marginTop="@dimen/standard_margin"
android:text="@string/tv_pub_date"
android:textSize="16sp"
app:layout_constraintStart_toEndOf="@+id/imgCover"
app:layout_constraintTop_toBottomOf="@+id/tvPublisher" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:layout_marginStart="@dimen/standard_margin"
android:layout_marginTop="@dimen/standard_margin"
android:layout_marginEnd="@dimen/standard_margin"
android:text="@string/tv_detail"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="@dimen/standard_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imgCover" />
</android.support.constraint.ConstraintLayout>
dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="title_size">20sp</dimen>
<dimen name="authors_size">18sp</dimen>
<dimen name="published_date_padding">8dp</dimen>
<dimen name="standard_margin">16dp</dimen>
</resources>
Upvotes: 0
Views: 473
Reputation: 19250
Checkout this route:
at java.lang.StringToReal.invalidReal(StringToReal.java:63)
which says the class StringToReal
at line 63 has a problem.
I think you have casted a string with value of 16.0dp
to float which is invalid.
First clear the dp
of it using something like:
String a = "16.0dp";
Strign newA = a.replace("dp", "");
and then try to cast it.
But since this is not your source to change, you should check where you have given output to this. check your dimens.xml
and see where you have used invalid values.
Upvotes: 1