Java 无法启动活动组件信息{}:android.view.InflateException:二进制XML文件行#4:膨胀类片段时出错
每件事都会成功,但当我点击“回收者查看项目”并打开“详细信息”活动时,应用程序崩溃了 我知道这个问题有很多答案,我都试过了,但是没有人能解决这个问题 当我从片段中获取参数时,我也得到了空指针异常 主片段中的onclick接口Java 无法启动活动组件信息{}:android.view.InflateException:二进制XML文件行#4:膨胀类片段时出错,java,android,android-fragments,fragment,Java,Android,Android Fragments,Fragment,每件事都会成功,但当我点击“回收者查看项目”并打开“详细信息”活动时,应用程序崩溃了 我知道这个问题有很多答案,我都试过了,但是没有人能解决这个问题 当我从片段中获取参数时,我也得到了空指针异常 主片段中的onclick接口 public void onClick(long date) { Uri todayUri = WeatherContract.WeatherEntry.buildWeatherUriWithDate(date); DetailsFragment detai
public void onClick(long date) {
Uri todayUri = WeatherContract.WeatherEntry.buildWeatherUriWithDate(date);
DetailsFragment detailsFragment = (DetailsFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.details_fragment);
if (todayUri != null) {
String myUri = todayUri.toString();
if (detailsFragment != null) {
DetailsFragment detailsFragment1 = new DetailsFragment();
Bundle bundle = new Bundle();
bundle.putString(DetailsFragment.FRAGMENT_KEY, myUri);
detailsFragment1.setArguments(bundle);
detailsFragment = detailsFragment1;
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.details_fragment, detailsFragment).commit();
} else {
Intent detailsActivity = new Intent();
detailsActivity.setClass(getActivity(), DetailsActivity.class);
detailsActivity.setData(todayUri);
startActivity(detailsActivity);
}
}
}
我的详细资料活动
package com.example.freewaresys.sunshine;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class DetailsActivity extends FragmentActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
Uri uri = getIntent().getData();
String myUri = uri.toString();
Bundle bundle = new Bundle();
bundle.putString(DetailsFragment.FRAGMENT_KEY, myUri);
DetailsFragment detailsFragment = new DetailsFragment();
detailsFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction()
.add(R.id.activity_details_fragment, detailsFragment).commit();
}
}
我的详细活动布局
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.example.freewaresys.sunshine.DetailsFragment"
android:id="@+id/activity_details_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
在
DetailsFragment
类中,使用片段的视图引用项…将代码从onActivityCreated
移动到onCreateView()
代码段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_details, container, false);
Bundle bundle = this.getArguments();
String uriString = bundle.getString(FRAGMENT_KEY);
mUri = Uri.parse(uriString);
// Inflate the layout for this fragment
date = (TextView) v.findViewById(R.id.date);
weatherDescrirption = (TextView) v.findViewById(R.id.weather_description);
weatherIcon = (ImageView) v.findViewById(R.id.weather_icon);
lowTemperature = (TextView) v.findViewById(R.id.low_temperature);
highTemperature = (TextView) v.findViewById(R.id.high_temperature);
humidity = (TextView) v.findViewById(R.id.humidity);
pressure = (TextView) v.findViewById(R.id.pressure);
windMeasurement = (TextView) v.findViewById(R.id.wind_measurement);
getActivity().getSupportLoaderManager().initLoader(LOADER_ID, null, this);
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
您必须为您的
请尝试添加
<meta-data android:name="com.google.android.gms.version"
请发布主要天气信息
和额外天气详细信息的xml。谢谢你的帮助,但我仍然遇到同样的问题谢谢你的帮助,但我仍然遇到同样的问题请重新构建并运行
.freewaresys.sunshine E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.freewaresys.sunshine, PID: 23552
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.freewaresys.sunshine/com.example.freewaresys.sunshine.DetailsActivity}: android.view.InflateException: Binary XML file line #4: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
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:829)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #4: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:341)
at android.app.Activity.setContentView(Activity.java:1948)
at com.example.freewaresys.sunshine.DetailsActivity.onCreate(DetailsActivity.java:12)
at android.app.Activity.performCreate(Activity.java:5343)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
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:829)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.example.freewaresys.sunshine.DetailsFragment.onCreateView(DetailsFragment.java:66)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2192)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1255)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1472)
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1691)
at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3440)
at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:378)
at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:33)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:341)
at android.app.Activity.setContentView(Activity.java:1948)
at com.example.freewaresys.sunshine.DetailsActivity.onCreate(DetailsActivity.java:12)
at android.app.Activity.performCreate(Activity.java:5343)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
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:829)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
at dalvik.system.NativeStart.main(Native Method)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_details, container, false);
Bundle bundle = this.getArguments();
String uriString = bundle.getString(FRAGMENT_KEY);
mUri = Uri.parse(uriString);
// Inflate the layout for this fragment
date = (TextView) v.findViewById(R.id.date);
weatherDescrirption = (TextView) v.findViewById(R.id.weather_description);
weatherIcon = (ImageView) v.findViewById(R.id.weather_icon);
lowTemperature = (TextView) v.findViewById(R.id.low_temperature);
highTemperature = (TextView) v.findViewById(R.id.high_temperature);
humidity = (TextView) v.findViewById(R.id.humidity);
pressure = (TextView) v.findViewById(R.id.pressure);
windMeasurement = (TextView) v.findViewById(R.id.wind_measurement);
getActivity().getSupportLoaderManager().initLoader(LOADER_ID, null, this);
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
class="com.example.freewaresys.sunshine.DetailsFragment"
android:id="@+id/activity_details_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<meta-data android:name="com.google.android.gms.version"