【发布时间】:2018-02-12 11:46:23
【问题描述】:
我已经发布了整个区域,我不确定问题出在哪里
进程:com.dllibrary.cart,PID:17497
类的java.lang.RuntimeException:无法启动活动 组件信息{com.dllibrary.cart/com.dllibrary.cart.FoodDetail}: android.view.InflateException:二进制 XML 文件第 0 行:错误 膨胀类 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2521) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2601) 在 android.app.ActivityThread.access$800(ActivityThread.java:178) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470) 在 android.os.Handler.dispatchMessage(Handler.java:111) 在 android.os.Looper.loop(Looper.java:194) 在 android.app.ActivityThread.main(ActivityThread.java:5637) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 引起:android.view.InflateException:二进制 XML 文件第 0 行: 膨胀类错误 在 android.view.LayoutInflater.createView(LayoutInflater.java:633) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:504) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:414) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:365) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 com.dllibrary.cart.FoodDetail.onCreate(FoodDetail.java:34) 在 android.app.Activity.performCreate(Activity.java:6124) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2601) 在 android.app.ActivityThread.access$800(ActivityThread.java:178) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470) 在 android.os.Handler.dispatchMessage(Handler.java:111) 在 android.os.Looper.loop(Looper.java:194) 在 android.app.ActivityThread.main(ActivityThread.java:5637) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Constructor.newInstance(Native Method) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:288) 在 android.view.LayoutInflater.createView(LayoutInflater.java:607) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:504) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:414) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:365) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 在 com.dllibrary.cart.FoodDetail.onCreate(FoodDetail.java:34) 在 android.app.Activity.performCreate(Activity.java:6124) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2601) 在 android.app.ActivityThread.access$800(ActivityThread.java:178) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470) 在 android.os.Handler.dispatchMessage(Handler.java:111) 在 android.os.Looper.loop(Looper.java:194) 在 android.app.ActivityThread.main(ActivityThread.java:5637) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 引起:java.lang.NullPointerException:尝试调用虚拟 方法'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable()' 空对象引用 在 android.graphics.drawable.LayerDrawable$ChildDrawable.(LayerDrawable.java:961) 在 android.graphics.drawable.LayerDrawable$LayerState.(LayerDrawable.java:1007) 在 android.graphics.drawable.RippleDrawable$RippleState.(RippleDrawable.java:923) 在 android.graphics.drawable.RippleDrawable.createConstantState(RippleDrawable.java:914) 在 android.graphics.drawable.RippleDrawable.createConstantState(RippleDrawable.java:94) 在 android.graphics.drawable.LayerDrawable.mutate(LayerDrawable.java:912) 在 android.graphics.drawable.RippleDrawable.mutate(RippleDrawable.java:900) 在 android.view.View.applyBackgroundTint(View.java:16774) 在 android.view.View.setBackgroundDrawable(View.java:16643) 在 android.support.design.widget.FloatingActionButton.access$001(FloatingActionButton.java:68) 在 android.support.design.widget.FloatingActionButton$ShadowDelegateImpl.setBackgroundDrawable(FloatingActionButton.java:824) 在 android.support.design.widget.FloatingActionButtonLollipop.setBackgroundDrawable(FloatingActionButtonLollipop.java:73) 在 android.support.design.widget.FloatingActionButton.(FloatingActionButton.java:179) 在 android.support.design.widget.FloatingActionButton.(FloatingActionButton.java:151)
xml 布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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="com.dllibrary.cart.FoodDetail">
<android.support.design.widget.AppBarLayout
android:id="@+id/App_Bar_Layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:fitsSystemWindows="true"
>
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/CollapsingToolbar"
android:layout_width="match_parent"
android:layout_height="350dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:expandedTitleTextAppearance="@android:color/transparent"
app:contentScrim="#0e0d0e">
<ImageView
android:id="@+id/img_food"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@null"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:title="Food Name"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="parallax"
/>
<!--android:popupTheme="@style/ThemeOverlay.AppCompat.Light"-->
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnCart"
android:src="@drawable/ic_shopping_cart_black_24dp"
android:backgroundTint="@android:color/white"
app:elevation="6dp"
app:pressedTranslationZ="12dp"
app:layout_anchor="@id/App_Bar_Layout"
app:layout_anchorGravity="bottom|right|end"
app:useCompatPadding="true"
/>
<android.support.v4.widget.NestedScrollView
android:id="@+id/nestedScrollView"
android:clipToPadding="false"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardElevation="5dp"
app:cardUseCompatPadding="true"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:id="@+id/food_name"
android:layout_marginTop="8dp"
android:text="Food Name"
android:textColor="@color/colorPrimary"
android:textSize="20sp"
android:textStyle="bold"
android:padding="12dp"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/Layout_Price"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:src="@drawable/ic_attach_money_black_24dp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<TextView
android:layout_width="0dp"
android:layout_weight="9"
android:id="@+id/food_price"
android:text="1000"
android:textColor="@color/colorPrimary"
android:textSize="18sp"
android:textStyle="bold"
android:layout_height="wrap_content" />
</LinearLayout>
<com.cepheuen.elegantnumberbutton.view.ElegantNumberButton
android:id="@+id/counter"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_marginTop="8dp"
android:layout_marginLeft="0dp"
android:layout_marginBottom="18dp"
app:textSize="8sp"
app:backGroundColor="@color/colorAccent"
app:initialNumber="1"
app:finalNumber="20"
>
</com.cepheuen.elegantnumberbutton.view.ElegantNumberButton>
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardElevation="5dp"
app:cardUseCompatPadding="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/food_description"
android:layout_marginTop="12dp"
android:lineSpacingMultiplier="1.5"
android:text="Description"
android:padding="12dp"
android:textSize="14sp"
android:textColor="@android:color/black"
/>
</android.support.v7.widget.CardView>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
Java 类。
package com.dllibrary.cart;
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.cepheuen.elegantnumberbutton.view.ElegantNumberButton;
import com.dllibrary.cart.model.Food;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.squareup.picasso.Picasso;
public class FoodDetail extends AppCompatActivity {
TextView food_name, food_price, food_description;
Button btncart;
ImageView food_imagel;
CollapsingToolbarLayout collapsingToolbarLayout;
ElegantNumberButton numberButton;
String foodId="";
FirebaseDatabase database;
DatabaseReference foods;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food_detail);
database = FirebaseDatabase.getInstance();
foods = database.getReference("Food");
food_name = (TextView) findViewById(R.id.food_name);
food_price = (TextView) findViewById(R.id.food_price);
food_description = (TextView) findViewById(R.id.food_description);
food_imagel = (ImageView) findViewById(R.id.img_food);
numberButton = (ElegantNumberButton) findViewById(R.id.counter);
btncart = (Button) findViewById(R.id.btnCart);
collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.CollapsingToolbar);
collapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppBar);
collapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.CollapseAppBar);
if (getIntent() != null)
foodId = getIntent().getStringExtra("FoodId");
if (!foodId.isEmpty()) {
getDetailFood(foodId);
}
}
private void getDetailFood(String foodId) {
foods.child(foodId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Food food= dataSnapshot.getValue(Food.class);
Picasso.with(getBaseContext()).load(food.getImage())
.into(food_imagel);
collapsingToolbarLayout.setTitle(food.getName());
food_price.setText(food.getPrice());
food_name.setText(food.getName());
food_description.setText(food.getDescription());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
【问题讨论】:
标签: java android xml android-layout