2013-11-25 3 views
0

Моя программа разбивается, когда я пытаюсь изменить видимость макета. Что я делаю не так?Сбой при попытке установить видимость в макете

Мой код и LogCat здесь:

MainActivity.java:

private LinearLayout infolayer; 

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

    findViewById(R.id.info); 
    infolayer = (LinearLayout) findViewById(R.id.inflayer); //listview id from xml 
    findViewById(R.id.master); 

public void openInfo(View view){ 

    if(infolayer.getVisibility()==View.VISIBLE) infolayer.setVisibility(View.GONE); 
    else infolayer.setVisibility(View.VISIBLE); 
} 

activity_main XML:

<LinearLayout 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="#40ff6f" 
      android:visibility="visible" 
      android:id="@+id/inflayer"></LinearLayout> 

Краш LogCat:

11-25 11:39:09.669  251-616/? E/HtcAudPMB﹕ getOutput() IOProfile is null. 
11-25 11:39:09.669  251-1365/? E/HtcAudPMB﹕ getOutput() IOProfile is null. 
11-25 11:39:09.669  251-617/? E/HtcAudPMB﹕ getOutput() IOProfile is null. 
11-25 11:39:09.679  251-611/? E/ACDB-LOADER﹕ Error: ACDB AFE returned = -8 
11-25 11:39:09.679 30032-30032/com.example.training E/AndroidRuntime﹕ FATAL EXCEPTION: main 
java.lang.IllegalStateException: Could not execute method of the activity 
     at android.view.View$1.onClick(View.java:3673) 
     at android.view.View.performClick(View.java:4280) 
     at android.view.View$PerformClick.run(View.java:17984) 
     at android.os.Handler.handleCallback(Handler.java:730) 
     at android.os.Handler.dispatchMessage(Handler.java:92) 
     at android.os.Looper.loop(Looper.java:158) 
     at android.app.ActivityThread.main(ActivityThread.java:5789) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at android.view.View$1.onClick(View.java:3668) 
     at android.view.View.performClick(View.java:4280) 
     at android.view.View$PerformClick.run(View.java:17984) 
     at android.os.Handler.handleCallback(Handler.java:730) 
     at android.os.Handler.dispatchMessage(Handler.java:92) 
     at android.os.Looper.loop(Looper.java:158) 
     at android.app.ActivityThread.main(ActivityThread.java:5789) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
     at com.example.training.MainActivity.openInfo(MainActivity.java:84) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at android.view.View$1.onClick(View.java:3668) 
     at android.view.View.performClick(View.java:4280) 
     at android.view.View$PerformClick.run(View.java:17984) 
     at android.os.Handler.handleCallback(Handler.java:730) 
     at android.os.Handler.dispatchMessage(Handler.java:92) 
     at android.os.Looper.loop(Looper.java:158) 
     at android.app.ActivityThread.main(ActivityThread.java:5789) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843) 
     at dalvik.system.NativeStart.main(Native Method) 

    11-25 11:39:09.689  595-677/? E/EmbeddedLogger﹕ App crashed! Process: com.example.training 
    11-25 11:39:09.689  595-677/? E/EmbeddedLogger﹕ App crashed! Package: com.example.training v1 (1.0) 
    11-25 11:39:09.699  595-677/? E/EmbeddedLogger﹕ Application Label: training 
    11-25 11:39:09.709  251-611/? E/AudioStreamOutALSA﹕ PCM_Write set_amp_mode,1 
    11-25 11:39:10.460  851-3237/? E/ActivityThread﹕ Failed to find provider info for com.htc.idlescreen.setting.provider 
    11-25 11:40:14.939 30871-30871/? E/BlurCheckin﹕ exception in static initializer 
java.lang.ClassNotFoundException: com.motorola.android.provider.CheckinEvent 
     at java.lang.Class.classForName(Native Method) 
     at java.lang.Class.forName(Class.java:204) 
     at java.lang.Class.forName(Class.java:169) 
     at com.motorola.camera.BlurCheckin.<clinit>(BlurCheckin.java:202) 
     at com.motorola.camera.CameraApp.onCreate(CameraApp.java:103) 
     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1020) 
     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5085) 
     at android.app.ActivityThread.access$1300(ActivityThread.java:162) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1476) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:158) 
     at android.app.ActivityThread.main(ActivityThread.java:5789) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NoClassDefFoundError: com/motorola/android/provider/CheckinEvent 
     at java.lang.Class.classForName(Native Method) 
     at java.lang.Class.forName(Class.java:204) 
     at java.lang.Class.forName(Class.java:169) 
     at com.motorola.camera.BlurCheckin.<clinit>(BlurCheckin.java:202) 
     at com.motorola.camera.CameraApp.onCreate(CameraApp.java:103) 
     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1020) 
     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5085) 
     at android.app.ActivityThread.access$1300(ActivityThread.java:162) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1476) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:158) 
     at android.app.ActivityThread.main(ActivityThread.java:5789) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.motorola.android.provider.CheckinEvent" on path: DexPathList[[zip file "/data/app/com.motorola.camera-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.motorola.camera-1, /system/lib]] 
     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
     at java.lang.Class.classForName(Native Method) 
     at java.lang.Class.forName(Class.java:204) 
     at java.lang.Class.forName(Class.java:169) 
     at com.motorola.camera.BlurCheckin.<clinit>(BlurCheckin.java:202) 
     at com.motorola.camera.CameraApp.onCreate(CameraApp.java:103) 
     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1020) 
     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5085) 
     at android.app.ActivityThread.access$1300(ActivityThread.java:162) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1476) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:158) 
     at android.app.ActivityThread.main(ActivityThread.java:5789) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843) 
     at dalvik.system.NativeStart.main(Native Method) 
    11-25 11:40:14.939 30871-30871/? E/BlurCheckin﹕ Checkin class does not exist:java.lang.ClassNotFoundException: com.motorola.checkinwrapper.CheckinEventWrapper 
    11-25 11:41:20.048  251-1365/? E/HtcAudPMB﹕ getOutput() IOProfile is null. 
    11-25 11:41:20.048  251-616/? E/HtcAudPMB﹕ getOutput() IOProfile is null. 
    11-25 11:41:20.048  251-617/? E/HtcAudPMB﹕ getOutput() IOProfile is null. 
    11-25 11:41:20.058  251-611/? E/ACDB-LOADER﹕ Error: ACDB AFE returned = -8 
    11-25 11:41:20.088  251-611/? E/AudioStreamOutALSA﹕ PCM_Write set_amp_mode,1 
+1

Вы забыли назвать 'setContentView()', прежде чем вы манипулируете с макетом. Вам нужно это сделать, иначе экземпляры элементов в макете не создаются и не инициализируются - причина «NPE». – Sajmon

ответ

0

Как Геральт уже правильно заметил, попробуйте следующее:

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

    setContentView(infolayer) // Usually the Layout comes from the generated 
           // R.java so something like R.layout.infolayer 

    // your code... 

} 
Смежные вопросы