(Android)If语句使我的活动崩溃

(Android)If语句使我的活动崩溃,android,if-statement,crash,Android,If Statement,Crash,今天我问了我的第一个应用程序一个问题,想知道为什么我的应用程序在测试连接和提供视图时会崩溃。。。答案完全不准确,毫无用处。。。但是今天晚上,我发现onCreate中没有任何代码,而是If语句中的setVisibility()方法导致我的活动崩溃 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activ

今天我问了我的第一个应用程序一个问题,想知道为什么我的应用程序在测试连接和提供视图时会崩溃。。。答案完全不准确,毫无用处。。。但是今天晚上,我发现onCreate中没有任何代码,而是If语句中的setVisibility()方法导致我的活动崩溃

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    } 
    Intent cd = getIntent();
    ConnectionDetector cdr = new ConnectionDetector(getApplicationContext());
    Boolean isInternetPresent = cdr.isConnectingToInternet();
    ImageView glss2 = (ImageView)findViewById(R.id.glass2);
    ImageView glss1 = (ImageView) findViewById(R.id.glass1);
    if (isInternetPresent) {
        glss1.setVisibility(View.VISIBLE);
        glss2.setVisibility(View.GONE);
    } else {
       glss1.setVisibility(View.GONE);
       glss2.setVisibility(View.VISIBLE);
    }
}
没有这些setVisibility方法,整个代码就像一个魔咒,但我只想控制if语句中两个ImageView的可见性。。。有解决办法吗?如果不可能,是否有其他方法来控制java代码中ImageView的可见性? 下面是日志:

05-21 11:05:38.462: E/filePathInTheme(23435): fallback to res
05-21 11:05:38.482: E/filePathInTheme(23435): fallback to res
05-21 11:05:38.652: E/filePathInTheme(23435): fallback to res
05-21 11:05:38.802: I/Adreno200-EGLSUB(23435): <ConfigWindowMatch:2081>: Format RGBA_8888.
05-21 11:05:38.812: D/memalloc(23435): /dev/pmem: Mapped buffer base:0x50c32000 size:11960320 offset:10485760 fd:54
05-21 11:05:39.122: D/memalloc(23435): /dev/pmem: Mapped buffer base:0x51a3b000 size:13434880 offset:11960320 fd:57
05-21 11:05:41.542: E/filePathInTheme(23435): fallback to res
05-21 11:05:41.572: W/dalvikvm(23435): threadid=1: thread exiting with uncaught exception (group=0x40a659f0)
05-21 11:05:41.582: E/AndroidRuntime(23435): FATAL EXCEPTION: main
05-21 11:05:41.582: E/AndroidRuntime(23435): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lemonaade.watchr/com.lemonaade.watchr.MainActivity}: java.lang.NullPointerException
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1961)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1986)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1152)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.os.Looper.loop(Looper.java:137)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.app.ActivityThread.main(ActivityThread.java:4450)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at java.lang.reflect.Method.invokeNative(Native Method)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at java.lang.reflect.Method.invoke(Method.java:511)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at dalvik.system.NativeStart.main(Native Method)
05-21 11:05:41.582: E/AndroidRuntime(23435): Caused by: java.lang.NullPointerException
05-21 11:05:41.582: E/AndroidRuntime(23435):    at com.lemonaade.watchr.MainActivity.onCreate(MainActivity.java:35)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.app.Activity.performCreate(Activity.java:4465)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
05-21 11:05:41.582: E/AndroidRuntime(23435):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1925)
05-21 11:05:41.582: E/AndroidRuntime(23435):    ... 11 more
05-21 11:05:38.462:E/filepathinteme(23435):回退到res
05-21 11:05:38.482:E/filepathinteme(23435):回退到res
05-21 11:05:38.652:E/filepathinteme(23435):回退到res
05-21 11:05:38.802:I/Adreno200 EGLSUB(23435)::格式RGBA_8888。
05-21 11:05:38.812:D/memalloc(23435):/dev/pmem:Mapped buffer base:0x50c3200大小:11960320偏移量:10485760 fd:54
05-21 11:05:39.122:D/memalloc(23435):/dev/pmem:Mapped buffer base:0x51a3b000 size:13434880 offset:11960320 fd:57
05-21 11:05:41.542:E/FilePathInTime(23435):回退到res
05-21 11:05:41.572:W/dalvikvm(23435):螺纹ID=1:螺纹存在未捕获异常(组=0x40a659f0)
05-21 11:05:41.582:E/AndroidRuntime(23435):致命异常:主
05-21 11:05:41.582:E/AndroidRuntime(23435):java.lang.RuntimeException:无法启动活动组件信息{com.lemonaade.watchr/com.lemonaade.watchr.MainActivity}:java.lang.NullPointerException
05-21 11:05:41.582:E/AndroidRuntime(23435):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1961)上
05-21 11:05:41.582:E/AndroidRuntime(23435):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1986)
05-21 11:05:41.582:E/AndroidRuntime(23435):在android.app.ActivityThread.access$600(ActivityThread.java:123)
05-21 11:05:41.582:E/AndroidRuntime(23435):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1152)
05-21 11:05:41.582:E/AndroidRuntime(23435):位于android.os.Handler.dispatchMessage(Handler.java:99)
05-21 11:05:41.582:E/AndroidRuntime(23435):在android.os.Looper.loop(Looper.java:137)上
05-21 11:05:41.582:E/AndroidRuntime(23435):位于android.app.ActivityThread.main(ActivityThread.java:4450)
05-21 11:05:41.582:E/AndroidRuntime(23435):位于java.lang.reflect.Method.Invokenactive(本机方法)
05-21 11:05:41.582:E/AndroidRuntime(23435):在java.lang.reflect.Method.invoke(Method.java:511)
05-21 11:05:41.582:E/AndroidRuntime(23435):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
05-21 11:05:41.582:E/AndroidRuntime(23435):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
05-21 11:05:41.582:E/AndroidRuntime(23435):在dalvik.system.NativeStart.main(本机方法)
05-21 11:05:41.582:E/AndroidRuntime(23435):由以下原因引起:java.lang.NullPointerException
05-21 11:05:41.582:E/AndroidRuntime(23435):位于com.lemonaade.watchr.MainActivity.onCreate(MainActivity.java:35)
05-21 11:05:41.582:E/AndroidRuntime(23435):在android.app.Activity.performCreate(Activity.java:4465)上
05-21 11:05:41.582:E/AndroidRuntime(23435):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
05-21 11:05:41.582:E/AndroidRuntime(23435):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1925)
05-21 11:05:41.582:E/AndroidRuntime(23435):。。。还有11个

非常感谢:)

这也是我遇到的问题。似乎
Boolean
必须是小写的:
Boolean
才能正常工作。

使用Java基本变量,如
Boolean
type not
Boolean
object

 Boolean isInternetPresent = cdr.isConnectingToInternet(); //INCORRECT!
 boolean isInternetPresent = cdr.isConnectingToInternet(); //CORRECT =)!
我认为很多人都有同样的问题,
PlaceholderFragment()
必须有一个包含

 ImageView glss2 = (ImageView)findViewById(R.id.glass2);
 ImageView glss1 = (ImageView) findViewById(R.id.glass1);

而不是
activity\u main.xml

isInternetPresent可能为空…或者ImageView。它们在活动单元主布局上是否正确?您确定ImageView的ID正确吗?插入logcat消息,这可能会对我们有所帮助。

Stacktrace(logcat输出)请更新我的logcat发布您在logcat中显示的完整消息,这个“05-20 21:11:05.412:E/FilePathInTime(19298):fallback to re”没有异常的含义。我最初对如何导出文件感到困惑,现在我更新了我的问题。是的,布尔值必须是小写的,我改变了它,但仍然有碰撞,实际上IMG在fragment_main中。。。但是它们仍然正确编译,没有明显的东西,对吗?