2013-02-28 3 views
1

주어진 코드를 확인하십시오. 사소한 변경 사항이있는 C++에서 동일한 코드를 사용했으며 매우 잘 실행됩니다. 나는 안드로이드를 위해 그것을 고대하기를 고대하고 있었다. 그러나 Calculate 버튼을 누르면 충돌이 발생합니다. 문제는 무엇인지 말해주세요. 오후 8시 30 분 P.S. 나는 초보자이다.For 루프가 충돌합니다.

내 main.xml에 :

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

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="Optimum Tilt Angle Calculator" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="Calculate" /> 

<TextView 
    android:id="@+id/beta" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="Beta = " 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/rad" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="H = " 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 


내 Tilt.java :

package com.ned.tilt; 

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.TextView; 

    public class Tilt extends Activity implements android.view.View.OnClickListener { 
private static final double PI = 3.142; 
private static final double PHI = 24.8508 * (PI/180); 
private static final double Gsc = 1367; 
private static final double RO = 0.2; 
int i, beta, ang; 

double delta, ws, wss, Hom[], Gon[], Kt[], Hd[], Rb, Rb_num, Rb_den, Ra, 
     Htm, Ht; 
int nbar[] = { 17, 47, 75, 105, 135, 162, 198, 228, 258, 288, 318, 344 }; 
int N[] = { 31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30 }; 
double Hm[] = { 4.38, 5.18, 5.93, 6.65, 6.67, 6.40, 5.44, 5.27, 5.62, 5.24, 
     4.5, 4.11 }; 
Button cal; 
TextView radiation, angle; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    initialize(); 
    cal.setOnClickListener(this); 

} 

private void initialize() { 
    // TODO Auto-generated method stub 
    cal = (Button) findViewById(R.id.button1); 
    radiation = (TextView) findViewById(R.id.rad); 
    angle = (TextView) findViewById(R.id.beta); 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    for (i = 0; i <= 11; i++) { 
     Htm = 0; 
     delta = 23.45 * (Math.sin((0.986301369) * (PI/180) 
       * (284 + (nbar[i])))); 

     ws = Math.acos(-(Math.tan(PHI)) * (Math.tan(delta * (PI/180)))); 
     ws = ws * (180/PI); 

     Gon[i] = Gsc 
       * (1 + (0.033 * Math.cos(0.986301369 * (nbar[i]) 
         * (PI/180)))); 

     Hom[i] = (86400/PI) 
       * Gon[i] 
       * (((Math.cos(PHI)) * (Math.cos(delta * (PI/180))) * (Math 
         .sin(ws * (PI/180)))) + ((ws * (PI/180)) * (Math 
         .sin(PHI) * (Math.sin(delta * (PI/180)))))); 
     Hom[i] = Hom[i]/3600000; 

     Kt[i] = Hm[i]/Hom[i]; 

     Hd[i] = (0.96268) - ((1.45200) * (Kt[i])) 
       + ((0.27365) * (Kt[i]) * (Kt[i])) 
       + ((0.04279) * (Kt[i]) * (Kt[i]) * (Kt[i])) 
       + ((0.000246) * (ws)) 
       + ((0.001189) * (90 - (PHI * (180/PI)) + delta)); 
     Hd[i] = Hd[i] * Hm[i]; 
     for (beta = 0; beta <= 90; beta++) { 
      wss = Math.acos(-(Math.tan((PHI) - (beta * (PI/180))) * (Math 
        .tan(delta * (PI/180))))); 
      wss = wss * (180/PI); 
      if (wss > ws) { 
       wss = ws; 
      } 

      Rb_num = ((Math.cos((PHI) - (beta * (PI/180)))) 
        * (Math.cos(delta * (PI/180))) * (Math.sin(wss 
        * (PI/180)))) 
        + (((PI/180) * wss) 
          * ((Math.sin((PHI) - (beta * (PI/180))))) * ((Math 
           .sin(delta * (PI/180))))); 
      Rb_den = ((Math.cos(PHI)) * (Math.cos(delta * (PI/180))) * (Math 
        .sin(ws * (PI/180)))) 
        + (((PI/180) * (ws) * (Math.sin(PHI)) * (Math 
          .sin(delta * (PI/180))))); 
      Rb = Rb_num/Rb_den; 
      Ra = ((1 - (Hd[i]/Hm[i])) * (Rb)) 
        + ((Hd[i]/(2 * Hm[i])) * (1 + (Math.cos(beta 
          * (PI/180))))) 
        + ((RO/2) * (1 - (Math.cos(beta * (PI/180))))); 

      Ht = Ra * Hm[i]; 
      if (Ht > Htm) { 
       Htm = Ht; 
       ang = beta; 
      } 
     } 

     break; 
    } 
    radiation.setText("H = " + Htm); 
    angle.setText("Beta =" + ang); 

} 
} 

로그 캣 :

02-28 17:25:10.344: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:10.344: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:10.344: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:10.434: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:10.434: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:10.894: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:10.894: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:10.924: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:10.944: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.144: D/libEGL(773): loaded /system/lib/egl/libEGL_emulation.so 
02-28 17:25:11.154: D/(773): HostConnection::get() New Host Connection established 0x2a186bf0, tid 773 
02-28 17:25:11.184: D/libEGL(773): loaded /system/lib/egl/libGLESv1_CM_emulation.so 
02-28 17:25:11.193: D/libEGL(773): loaded /system/lib/egl/libGLESv2_emulation.so 
02-28 17:25:11.335: W/EGL_emulation(773): eglSurfaceAttrib not implemented 
02-28 17:25:11.383: D/OpenGLRenderer(773): Enabling debug mode 0 
02-28 17:25:11.394: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.403: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.415: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.444: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.444: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.464: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.464: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.464: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.464: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.474: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.514: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.524: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.524: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.524: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.724: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.774: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:25:11.864: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.747: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.747: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.747: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.767: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.767: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.767: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.777: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.777: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.910: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:49.910: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.397: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.397: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.473: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.473: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.473: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.477: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.477: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.477: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.477: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.477: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.497: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.497: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.497: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.497: W/Trace(773): Unexpected value from nativeGetEnabledTags: 0 
02-28 17:26:51.527: D/AndroidRuntime(773): Shutting down VM 
02-28 17:26:51.527: W/dalvikvm(773): threadid=1: thread exiting with uncaught exception (group=0x40a70930) 
02-28 17:26:51.537: E/AndroidRuntime(773): FATAL EXCEPTION: main 
02-28 17:26:51.537: E/AndroidRuntime(773): java.lang.NullPointerException 
02-28 17:26:51.537: E/AndroidRuntime(773): at com.ned.tilt.Tilt.onClick(Tilt.java:53) 
02-28 17:26:51.537: E/AndroidRuntime(773): at android.view.View.performClick(View.java:4202) 
02-28 17:26:51.537: E/AndroidRuntime(773): at android.view.View$PerformClick.run(View.java:17340) 
02-28 17:26:51.537: E/AndroidRuntime(773): at android.os.Handler.handleCallback(Handler.java:725) 
02-28 17:26:51.537: E/AndroidRuntime(773): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-28 17:26:51.537: E/AndroidRuntime(773): at android.os.Looper.loop(Looper.java:137) 
02-28 17:26:51.537: E/AndroidRuntime(773): at android.app.ActivityThread.main(ActivityThread.java:5039) 
02-28 17:26:51.537: E/AndroidRuntime(773): at java.lang.reflect.Method.invokeNative(Native Method) 
02-28 17:26:51.537: E/AndroidRuntime(773): at java.lang.reflect.Method.invoke(Method.java:511) 
02-28 17:26:51.537: E/AndroidRuntime(773): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
02-28 17:26:51.537: E/AndroidRuntime(773): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
02-28 17:26:51.537: E/AndroidRuntime(773): at dalvik.system.NativeStart.main(Native Method) 
+3

추락 한 경우 로그에 예외가있는 것으로 추정됩니다. 질문을 편집하십시오. –

+0

오류 로그를 게시 할 수 있습니까? – l46kok

+1

LogCat 게시 – burmat

답변

1

당신은 당신의 동음 [], 곤 [], KT는 [],의 HD는 [] 배열을 초기화되지 않았습니다하지만 당신은 액세스하고 루프를 설정하기 위해 노력하고 있습니다. 한 예는 다음과 같습니다.

Hd[i] = Hd[i] * Hm[i]; 

길이가 12 인 루프를 처리하고 있으므로 빈 배열을 초기화 할 수 있습니다.

+0

어떻게 초기화합니까? :( – renupok92

+0

당신은 상수로, "개인 정적 int ARR_SIZE = 12;"와 같은 뭔가를 선언하는 최선의 연습을 위해 이중 Hd [] = new double [12]을 사용할 수 있습니다. –

+1

감사합니다. 그것은 일했습니다 .. : D – renupok92

관련 문제