오류가 발생합니다
Unable to start activity ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
세로 및 가로 모드를 통해 전환 할 때 조각을 사용하고 있습니다. 내 XML은 다음과 같습니다
<LinearLayout android:id="@+id/mainLayout"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ListView android:id="@+id/android:list"
android:layout_height="wrap_content"
android:layout_width="fill_parent"/>
<fragment android:id="@+id/fragmentDetails"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
class="de.androidbuch.activiti.task.TaskDetailsFragment"/>
</LinearLayout>
가로 및 세로 모드를 통해 전환하면 모든 것이 잘 작동합니다. 그러나 내 조각을 클릭하면 조각이 표시되고 다른 모드로 전환하면 오류가 발생합니다. 어떻게 해결할 수 있습니까? 여기에 몇 가지 답변이 있지만 이것들 중 어느 것도 나를 도와주지 못했습니다 …
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): FATAL EXCEPTION: main
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): java.lang.RuntimeException: Unable to start activity
ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3097)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.app.ActivityThread.access$1600(ActivityThread.java:123)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:997)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.os.Handler.dispatchMessage(Handler.java:99)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.os.Looper.loop(Looper.java:126)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.app.ActivityThread.main(ActivityThread.java:3998)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at java.lang.reflect.Method.invokeNative(Native Method)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at java.lang.reflect.Method.invoke(Method.java:491)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at dalvik.system.NativeStart.main(Native Method)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:227)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.app.Activity.setContentView(Activity.java:1771)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at de.androidbuch.activiti.task.TaskActivity.onCreate(TaskActivity.java:83)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): ... 12 more
답변
hdemirchian이 말했듯이 다음을 사용하십시오.
import android.support.v4.app.Fragment;
또한 조각을 사용하는 활동이 FragmentActivity
regular 대신 확장되는지 확인하십시오 Activity
.
import android.support.v4.app.FragmentActivity;
FragmentActivity
수업 을받을 수 있습니다.
답변
호출 하기 전에 프래그먼트 내부에서 android.view.InflateException: Binary XML file line: #... Error inflating class fragment
조작하면 예외 가 발생할 수 있습니다 . 이 경우 잘못된 활동 참조가 수신되어이를 신뢰할 수 없습니다.getActivity()
onActivityCreated()
예를 들어 다음 패턴이 잘못되었습니다.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
final View view = inflater.inflate(R.layout..., container, false);
Button button = getActivity().findViewById(R.id...);
button.setOnClickListener(...); - another problem: button is null
return view;
}
올바른 패턴 # 1
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
final View view = inflater.inflate(R.layout..., container, false);
Button button = view.findViewById(R.id...);
button.setOnClickListener(...);
return view;
}
올바른 패턴 # 2
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Button button = getActivity().findViewById(R.id...);
button.setOnClickListener(...);
}
답변
당신의 Activity
확장을 확인하십시오 FragmentActivity
.
답변
나는 같은 오류가 있었다. 나는 하루 종일 파고 있었지만, 나는이 문제에 대해 ~ 25 가지 해결책을 시도했다고 생각합니다. 오전 2시에 작동하지 않았으므로 앱 매니페스트 XML 에서이 줄이 누락되었음을 알았습니다.
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
그 줄은 <application>
태그 안에있었습니다 . 나는 이것이 누군가에게 도움이되기를 바랍니다. GL.
답변
나는 같은 문제가 있었다. 나를위한 해결책은 FragmentActivity 내에서 super.onCreate 및 setContentView의 순서였습니다.
다음 순서는 잘 작동합니다.
super.onCreate(savedInstanceState);
setContentView(R.layout.fc_activity_list_profiles);
답변
조각은 XML에 중첩 될 수 없습니다
이 방법을 열심히 배웠습니다. XML 레이아웃 기반 <fragment>
태그를 (잠재적으로) 동적으로로드 된FragmentManager
조각 xml을 부풀 리려고 이상한 오류가 발생하기 시작합니다.
이것이 지원 되지 않는다는 것이 밝혀졌습니다. 순전히FragmentManager
. 접근법을 .
<DrawerLayout>
from xml 안에 조각을로드하려고했기 때문에이 문제 가 발생 onCreateView()
하여 백 스택을 팝했을 때 메소드 에서 충돌이 발생했습니다 .
답변
나는 당신이 직면하는 것과 같은 문제를 겪고있었습니다. 상단의 도움말 중 어느 것도 도움이되지 않았습니다. 나중에, 내가해야 할 일은 수입품을 고치는 것입니다.
import android.app.Fragment;
에:
import android.support.v4.app.Fragment;