2016-06-23 1 views
0

Я экспериментировал этот library используя PhysicsRelativeLayout следующим образом:PhysicsRelativeLayout: NullPointerException вызывает когда setGravity (...) для PhysicsRelativeLayout

XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/layout_simulation" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:id="@+id/layout_top" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/button_physics_reset" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

    <com.jawnnypoo.physicslayout.PhysicsRelativeLayout 
      android:id="@+id/physics_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:boundsSize="100dp"> 

      <ImageView 
       android:id="@+id/iv_one" 
       android:layout_width="110dp" 
       android:layout_height="100dp" 
       android:src="@drawable/bg_one" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentTop="true" 
       android:layout_marginLeft="48dp" 
       android:layout_marginTop="48dp" /> 

      <ImageView 
       android:id="@+id/iv_two" 
       android:layout_width="110dp" 
       android:layout_height="100dp" 
       android:src="@drawable/bg_two" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentTop="true" 
       android:layout_marginRight="48dp" 
       android:layout_marginTop="48dp" /> 
    </com.jawnnypoo.physicslayout.PhysicsRelativeLayout> 
    </LinearLayout> 

Java:

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.jawnnypoo.physicslayout.PhysicsRelativeLayout; 
import com.experiment.physicslayout.R; 

public class SimulationFragment extends Fragment { 

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

     PhysicsRelativeLayout physicsRelativeLayout = (PhysicsRelativeLayout) view.findViewById(R.id.physics_layout); 
     physicsRelativeLayout.getPhysics().enablePhysics(); // ok 
     physicsRelativeLayout.getPhysics().enableFling(); // ok 

     physicsRelativeLayout.getPhysics().setGravity(0.00f, 24.8f); // NPE 
     return view; 
    } 
} 

Когда я пытаюсь установить gra Vity следующим образом:

physicsRelativeLayout.getPhysics().setGravity(0.00f, 24.8f); 

это вызывает следующее сообщение об ошибке:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void org.jbox2d.dynamics.World.setGravity(org.jbox2d.common.Vec2)' on a null object reference 
     at com.jawnnypoo.physicslayout.Physics.setGravity(Physics.java:686) 
     at com.jawnnypoo.physicslayout.Physics.setGravityX(Physics.java:661) 
     at com.experiment.physicslayout.ui.fragment.SimulationFragment.onCreateView(SimulationFragment.java:43) 
     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974) 
     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) 
.......... 
.......... 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

Любая идея? Заранее спасибо!

+0

ли код в фрагменте? – Piyush

+0

да во фрагменте. –

+0

показать мне полный код – Piyush

ответ

0

Просто используйте TRY случай обработчик

  try { 

       physicsLayout.getPhysics().setGravity(-event.values[0], event.values[1]); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
Смежные вопросы