public SlidingMenu(Context context, AttributeSet attrs) {
super(context, attrs);
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
mScreenWidth = outMetrics.widthPixels;
// 把dp或者sp轉化為px
mMeunRightPadding = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 50, context.getResources()
.getDisplayMetrics());
}
老師這行代碼?wm.getDefaultDisplay().getMetrics(outMetrics); ?一直報NullPointerException異常不知道是為什么
NOTE: This project contains Java compilation errors, which can cause rendering failures for custom views. Fix compilation problems first.
Exception raised during rendering: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup
Exception details are logged in Window > Show View > Error Log
The following classes could not be instantiated:
- com.example.stock.slidingmenu.view.SlidingMenu (Open Class, Show Error Log)
See the Error Log (Window > Show View) for more details.
Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse
java.lang.NullPointerException
? ? at com.example.stock.slidingmenu.view.SlidingMenu.<init>(SlidingMenu.java:41)
? ? at sun.reflect.NativeConstructorAccessorImpl.newInstance0( ? ?at sun.reflect.NativeConstructorAccessorImpl.newInstance( ? ?at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( ? ?at java.lang.reflect.Constructor.newInstance( ? ?at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:422)
? ? at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:179)
? ? at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
? ? at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135)
? ? at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:739)
? ? at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
? ? at android.view.LayoutInflater.rInflate(LayoutInflater.java:711)
? ? at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
? ? at android.view.LayoutInflater.inflate(LayoutInflater.java:372)
2014-10-29
你好,我看了你完整的log;建議先解決Exception raised during rendering: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup 。 下面有幾種可能的情況:1、是否在項目結構中建立了無關的文件夾;2、資源的名稱命名是否合法;3、詳細檢查下布局文件,看看有沒有在某個View里面寫了子View,比如你會不會把LinearLayout寫成了某個View,或者自定義ViewGroup是否繼承自ViewGroup。