3

私は、問題を引き起こす可能性のある最も単純なプロジェクトの作成に取り組んできました。おそらくこれは一般的な(サポートライブラリ?)フラグメントの問題であることに気付くまで、これはマップの問題だと当初は思っていました。(SGII v4.1.2でこのコードを実行してみました)

Javaコード:

package com.example.testapp;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MSMap extends FragmentActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_msmap);
  }
}

XMLレイアウト

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    >
    <fragment        
        android:id="@+id/themap"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
         />
</RelativeLayout>

上記の「エラーインフレーション」でこのエラーを示します。

03-09 12:06:56.850:E / AndroidRuntime(891):致命的な例外:メイン03-09 12:06:56.850:E / AndroidRuntime(891):java.lang.RuntimeException:アクティビティComponentInfo{comを開始できません。 example.testapp / com.example.testapp.MSMap}:android.view.InflateException:バイナリXMLファイル行#9:クラスフラグメントの膨張エラー03-09 12:06:56.850:E / AndroidRuntime(891):android.appで.ActivityThread.performLaunchActivity(ActivityThread.java:2110)03-09 12:06:56.850:E / AndroidRuntime(891):android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)03-09 12:06:56.850 :E / AndroidRuntime(891):android.app.ActivityThread.access $ 700(ActivityThread.java:140)03-09 12:06:56.850:E / AndroidRuntime(891):android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1237)03-09 12:06:56.850:E / AndroidRuntime(891):at android.os.Handler.dispatchMessage(Handler.java:99)03-09 12:06:56.850:E / AndroidRuntime(891):at android.os.Looper.loop(Looper.java:137)03-09 12 :06:56.850:E / AndroidRuntime(891):android.app.ActivityThread.main(ActivityThread.java:4921)03-09 12:06:56.850:E / AndroidRuntime(891):java.lang.reflect。 Method.invokeNative(Native Method)03-09 12:06:56.850:E / AndroidRuntime(891):at java.lang.reflect.Method.invoke(Method.java:511)03-09 12:06:56.850:E /AndroidRuntime(891):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1027)03-09 12:06:56.850:E / AndroidRuntime(891):com.android.internalで。 os.ZygoteInit.main(ZygoteInit.java:794)03-09 12:06:56.850:E / AndroidRuntime(891):dalvik.system.NativeStart.main(ネイティブメソッド)03-09 12:06:56.850:E / AndroidRuntime(891):原因:android.view.InflateException:バイナリXMLファイル行#9:クラスフラグメントの膨張エラー03-09 12:06:56.850:E / AndroidRuntime(891):android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704 )03-09 12:06:56.850:E / AndroidRuntime(891):android.view.LayoutInflater.rInflate(LayoutInflater.java:746)03-09 12:06:56.850:E / AndroidRuntime(891):android .view.LayoutInflater.inflate(LayoutInflater.java:489)03-09 12:06:56.850:E / AndroidRuntime(891):android.view.LayoutInflater.inflate(LayoutInflater.java:396)03-09 12:06 :56.850:E / AndroidRuntime(891):android.view.LayoutInflater.inflate(LayoutInflater.java:352)03-09 12:06:56.850:E / AndroidRuntime(891):com.android.internal.policyで。 impl.PhoneWindow.setContentView(PhoneWindow.java:313)03-09 12:06:56.850:E / AndroidRuntime(891):at android.app.Activity.setContentView(Activity.java:1924)03-09 12:06:56.850:E / AndroidRuntime(891):at com.example.testapp.MSMap.onCreate(MSMap.java:23)03- 09 12:06:56.850:E / AndroidRuntime(891):android.app.Activity.performCreate(Activity.java:5206)03-09 12:06:56.850:E / AndroidRuntime(891):android.app Instrumentation.callActivityOnCreate(Instrumentation.java:1094)03-09 12:06:56.850:E / AndroidRuntime(891):android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)03-09 12:06:56.850: E / AndroidRuntime(891):... 11 more 03-09 12:06:56.850:E / AndroidRuntime(891):原因:java.lang.NullPointerException:name == null 03-09 12:06:56.850: E / AndroidRuntime(891):java.lang.VMClassLoader.findLoadedClass(ネイティブメソッド)03-09 12:06:56.850:E / AndroidRuntime(891):java.lang。ClassLoader.findLoadedClass(ClassLoader.java:354)03-09 12:06:56.850:E / AndroidRuntime(891):at java.lang.ClassLoader.loadClass(ClassLoader.java:491)03-09 12:06:56.850: E / AndroidRuntime(891):java.lang.ClassLoader.loadClass(ClassLoader.java:461)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate (Fragment.java:391)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate(Fragment.java:369)03-09 12:06:56.850 :E / AndroidRuntime(891):android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)03-09 12:06:56.850:E / AndroidRuntime(891):android.view.LayoutInflater。 createViewFromTag(LayoutInflater.java:676)03-09 12:06:56.850:E / AndroidRuntime(891):... 21 more354)03-09 12:06:56.850:E / AndroidRuntime(891):at java.lang.ClassLoader.loadClass(ClassLoader.java:491)03-09 12:06:56.850:E / AndroidRuntime(891):at java.lang.ClassLoader.loadClass(ClassLoader.java:461)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate(Fragment.java:391)03 -09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate(Fragment.java:369)03-09 12:06:56.850:E / AndroidRuntime(891): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)03-09 12:06:56.850:E / AndroidRuntime(891):at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676) 03-09 12:06:56.850:E / AndroidRuntime(891):... 21 more354)03-09 12:06:56.850:E / AndroidRuntime(891):at java.lang.ClassLoader.loadClass(ClassLoader.java:491)03-09 12:06:56.850:E / AndroidRuntime(891):at java.lang.ClassLoader.loadClass(ClassLoader.java:461)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate(Fragment.java:391)03 -09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate(Fragment.java:369)03-09 12:06:56.850:E / AndroidRuntime(891): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)03-09 12:06:56.850:E / AndroidRuntime(891):at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676) 03-09 12:06:56.850:E / AndroidRuntime(891):... 21 more491)03-09 12:06:56.850:E / AndroidRuntime(891):at java.lang.ClassLoader.loadClass(ClassLoader.java:461)03-09 12:06:56.850:E / AndroidRuntime(891):at android.support.v4.app.Fragment.instantiate(Fragment.java:391)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate(Fragment.java :369)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)03-09 12:06:56.850:E / AndroidRuntime (891):android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)03-09 12:06:56.850:E / AndroidRuntime(891):... 21 more491)03-09 12:06:56.850:E / AndroidRuntime(891):at java.lang.ClassLoader.loadClass(ClassLoader.java:461)03-09 12:06:56.850:E / AndroidRuntime(891):at android.support.v4.app.Fragment.instantiate(Fragment.java:391)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate(Fragment.java :369)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)03-09 12:06:56.850:E / AndroidRuntime (891):android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)03-09 12:06:56.850:E / AndroidRuntime(891):... 21 more391)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate(Fragment.java:369)03-09 12:06:56.850:E / AndroidRuntime( 891):android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)03-09 12:06:56.850:E / AndroidRuntime(891):android.view.LayoutInflater.createViewFromTag(LayoutInflater.java) :676)03-09 12:06:56.850:E / AndroidRuntime(891):... 21 more391)03-09 12:06:56.850:E / AndroidRuntime(891):android.support.v4.app.Fragment.instantiate(Fragment.java:369)03-09 12:06:56.850:E / AndroidRuntime( 891):android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)03-09 12:06:56.850:E / AndroidRuntime(891):android.view.LayoutInflater.createViewFromTag(LayoutInflater.java) :676)03-09 12:06:56.850:E / AndroidRuntime(891):... 21 moreさらに21さらに21

コードとXMLの間に何らかの不一致がありますか?

  • コードにアクティビティとfragmentactivityを拡張させてみましたか?
  • XMLには、フラグメントを囲む相対レイアウトが含まれていますか?それはどういうわけか問題ですか?

すべての状況下で、私は自分が考えることができるすべての例やグーグルを試してみました。すべて同じエラーが発生します。

注:プロジェクトの「参照ライブラリ」と「Androidの依存関係」および「ライブラリ」にandroid-support-v4.jarがあります。

4

2 に答える 2

3

最後に、私はあなたの質問に対する答えを得ました

Fragment は、Java クラス ファイルが必要であるという点で、Activity と同じように機能します。フラグメント レイアウトを作成するだけではフラグメントを作成できません。フラグメントのクラスが必要です。

アクティビティのレイアウト XML と Activity サブクラスを作成する フラグメントのレイアウト XML と Fragment サブクラスを作成する Activity レイアウト XML で 2 つを結び付ける (または、Java コードで実行する場合は FragmentTransaction を使用する)すでにそうしている場合は、このページのすべてを読み、再読し、消化してください: http://developer.android.com/guide/topics/fundamentals/fragments.html

そこにはたくさんありますが、フラグメントは現在 Android アプリの不可欠な部分であるため、必読です。幸いなことに、フラグメントの基本は非常に単純です。

したがって、このようなクラスが必要です

<fragment
       class="com.exercise.FragmentTest.MyFragment"
于 2013-03-09T11:25:24.337 に答える
2

Fragment の名前を指定していません。フラグメントの name 属性にフラグメント クラスを指定する必要があります。

以下のコードのように:

<fragment        
    android:name="com.yourPackageName.YourFragmentClass" 
    android:id="@+id/themap"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     />
于 2013-03-09T11:25:08.200 に答える