我想在Activity的RelativeLayout内添加标签。但是我遇到了渲染错误。
有关如何解决的任何帮助?
编辑:添加崩溃的堆栈跟踪
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chandranichatterjee.mapapp/com.example.chandranichatterjee.myapplicationloc.MapsActivityNew}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2583)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1499)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5767)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class fragment
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:412)
at android.app.Activity.setContentView(Activity.java:2204)
at com.example.chandranichatterjee.myapplicationloc.MapsActivityNew.onCreate(MapsActivityNew.java:24)
at android.app.Activity.performCreate(Activity.java:6322)}
答案 0 :(得分:3)
如@Nazariy Moshenskiy所建议,我需要在android:name
标签中添加<fragment>
属性。
这是我的布局(如果将来有人遇到相同的问题)。
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraZoom="2"
tools:context=".MapsActivityNew" />
答案 1 :(得分:2)
如果您要使用android:name="com.example.myapp.YourFragmentHere"
标签,我认为您需要在片段内添加Fragment
来定义<fragment>
类。
答案 2 :(得分:0)
如您的错误消息所述:
<fragment>
标签允许布局文件在运行时动态包含不同的布局。在布局编辑时,要使用的特定布局未知。您可以在编辑布局时选择要预览的布局。
它不知道片段应该显示什么,但是可以忽略它,因为最后的结果确实知道它。您不能只拥有这样的常规预览。
编辑:
根据片段膨胀的经验,最常见的错误是:
使用:
public class MainActivity extends Activity {
代替:
public class MainActivity extends FragmentActivity {
,并且在清单文件中meta-data
之外具有application
标签。
答案 3 :(得分:0)
您必须在android:name="com.example.YourFragmentHere
标签内添加fragment
来定义Fragment类。像这样
<fragment
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.example.YourFragmentHere"
/>