Android应用程序中的异常

Android应用程序中的异常,android,android-layout,android-fragments,android-fragmentactivity,Android,Android Layout,Android Fragments,Android Fragmentactivity,我正在为平板电脑和手机开发一个android应用程序。我编写了自己的片段类及其相应的活动。但是,当我运行应用程序时,我会遇到以下错误 LogCat 07-23 18:56:10.200: E/AndroidRuntime(691): FATAL EXCEPTION: main 07-23 18:56:10.200: E/AndroidRuntime(691): java.lang.RuntimeException: Unable to start activity Compone

我正在为平板电脑和手机开发一个android应用程序。我编写了自己的片段类及其相应的活动。但是,当我运行应用程序时,我会遇到以下错误

LogCat

07-23 18:56:10.200: E/AndroidRuntime(691): FATAL EXCEPTION: main
07-23 18:56:10.200: E/AndroidRuntime(691): java.lang.RuntimeException: Unable to start activity        ComponentInfo{com.fxpal.unity.android/com.fxpal.unity.android.MainActivity}: android.view.InflateException:   Binary XML file line #7: Error inflating class fragment
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.ActivityThread.access$600(ActivityThread.java:123)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.os.Handler.dispatchMessage(Handler.java:99)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.os.Looper.loop(Looper.java:137)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.ActivityThread.main(ActivityThread.java:4424)
07-23 18:56:10.200: E/AndroidRuntime(691):  at java.lang.reflect.Method.invokeNative(Native Method)
07-23 18:56:10.200: E/AndroidRuntime(691):  at java.lang.reflect.Method.invoke(Method.java:511)
07-23 18:56:10.200: E/AndroidRuntime(691):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-23 18:56:10.200: E/AndroidRuntime(691):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-23 18:56:10.200: E/AndroidRuntime(691):  at dalvik.system.NativeStart.main(Native Method)
07-23 18:56:10.200: E/AndroidRuntime(691): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
07-23 18:56:10.200: E/AndroidRuntime(691):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.Activity.setContentView(Activity.java:1835)
07-23 18:56:10.200: E/AndroidRuntime(691):  at com.fxpal.unity.android.MainActivity.onCreate(MainActivity.java:20)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.Activity.performCreate(Activity.java:4465)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
07-23 18:56:10.200: E/AndroidRuntime(691):  ... 11 more
07-23 18:56:10.200: E/AndroidRuntime(691): Caused by: java.lang.NullPointerException
07-23 18:56:10.200: E/AndroidRuntime(691):  at com.fxpal.unity.android.EveryoneAdapter.<init>(EveryoneAdapter.java:24)
07-23 18:56:10.200: E/AndroidRuntime(691):  at com.fxpal.unity.android.GridFragment.onCreateView(GridFragment.java:21)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:806)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1010)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1108)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.app.Activity.onCreateView(Activity.java:4243)
07-23 18:56:10.200: E/AndroidRuntime(691):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
07-23 18:56:10.200: E/AndroidRuntime(691):  ... 21 more
下面是我个人的ViewFragment类

 package com.fxpal.unity.android;

 import com.fxpal.unity.android.Person;
 import android.app.Dialog;
 import android.app.Fragment;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.preference.PreferenceManager;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TableLayout;
 import android.widget.TableRow;
 import android.widget.TextView;
 import android.widget.Toast;

  public class IndividualViewFragment extends Fragment {


private static final String DB_TAG = "IndividualView";

private ImageView userImage;
private Person personToDisplay;
protected String numToCall, numtype;
//private DatabaseHelper db;



//private UnityMobileApp appCtx;


protected static final int DIALOG_VIEW_CALENDAR = 2;    

protected static final int MESSAGE_CONNECTION_ERROR_TOAST = 0;
//private static final String DEBUG_TAG = "unity.IndividualViewActivity";

private final Handler mHandler = new Handler() {
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case MESSAGE_CONNECTION_ERROR_TOAST:
            Toast.makeText(getActivity(), Consts.CONNECTION_ERROR_MESSAGE, Toast.LENGTH_SHORT).show();
            break;
        }
    }
};
private SharedPreferences prefs;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    View view = (LinearLayout) inflater.inflate(R.layout.individual_view, container, false);

    //db = new DatabaseHelper(appCtx);
   // appCtx = (UnityMobileApp) getActivity().getApplication();

    userImage = (ImageView)getView().findViewById(R.id.individualUserImage);
    return view;


}

public void onPause(){
    super.onPause();
}

public void onDestroy(){
    super.onDestroy();
    //doUnbindService();
    //db.close();
}

public void onResume(){
    super.onResume();

    //personToDisplay = appCtx.getEveryone().get(username);
    updateView();
    //updateInfo();

}


private void updateView(){

    userImage.setImageBitmap(personToDisplay.getRoundedImage(Consts.LARGE_USER_IMAGE_SIZE, Consts.LARGE_USER_IMAGE_BORDER));

}

}
我的清单文件在下面

  <?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.fxpal.unity.android"
  android:versionCode="1"
  android:versionName="1.0" >

 <uses-sdk android:minSdkVersion="15" />
 <application
    android:icon="@drawable/unity_icon"
    android:label="@string/app_name" 
    android:name=".UnityMobileApp"
    android:theme="@android:style/Theme.Holo" android:logo="@drawable/fuji_xerox_logo_125">
    <activity
        android:label="@string/app_name"
        android:name=".MainActivity" >
         <intent-filter >
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".IndividualViewActivity"
        android:label="@string/app_name" android:theme="@style/PageStyle">
    </activity>
    <service android:name=".ReportingService" />
    <receiver android:name=".StartupReceiver"/>
   </application>

   </manifest>

请帮帮我。我找不到问题出在哪里

问候,,
Rakesh

您的
适配器
构造函数:

public EveryoneAdapter(Context c, UnityMobileApp a) {
    mContext = c;
    appCtx = a;
    mNamesList = new ArrayList<String>(a.everyone.keySet()); // Here you call a.everyone
}
gridView.setAdapter(new EveryoneAdapter( view.getContext(),appCtx)); // appCtx has not been defined

因此,在构造函数中,实际上是在调用appCtx.everyone.keySet()。由于
appCtx
null
(应用程序尚未设置),它将崩溃。您需要正确创建或查找您的
appCtx

请显示
everyonedapter
类。错误在其构造函数中。感谢Eric的回复。我正在添加everyone适配器类Eric,appCtx是我的应用程序类UnityMobileApp.java的一个应用程序对象。你能给我一个解决方案吗?如果是
活动
拥有
片段
,请尝试
appCtx=(UnityMobileApp)getActivity()。否则,您需要一种获取其引用的方法。问题是您只是没有声明什么是
appCtx
的引用。
public EveryoneAdapter(Context c, UnityMobileApp a) {
    mContext = c;
    appCtx = a;
    mNamesList = new ArrayList<String>(a.everyone.keySet()); // Here you call a.everyone
}
gridView.setAdapter(new EveryoneAdapter( view.getContext(),appCtx)); // appCtx has not been defined