0

私の小さな Android コードを Eclipse で実行できません。次のエラー メッセージが表示されます。

E/AndroidRuntime(275): java.lang.RuntimeException: アクティビティ ComponentInfo{com.mytest.threedee/com.mytest.threedee.MainActivity} を開始できません: java.lang.NullPointerException

他に役立つ情報はありますか? Eclipse がコードの実行を開始することさえできないため、私のコードは無関係だと思います。java.lang.math.* をインポートしますが、「nullpointer」と表示されるのはなぜですか? エディターは、数学関数にエラーのマークを付けません。これは、Eclipse のあいまいなパスの問題だと思います。

Project/properties/Order および Export のみのリスト: - 2Dto3D/src (2Dto3D は私のプロジェクト名です) - 2Dto3D/gen - Android 4.2 - Android 依存関係

そこにもっと何かがあるはずですか?

ソース タブの下に、「ネイティブ ライブラリの場所: (なし)」と表示されます。悪いですね。

Windows 7、64 ビット モバイル開発者用の Java JDK 7、64 ビット Eclipse をダウンロードしました Juno リリース 1 仮想デバイス API 8 でコードを実行してみます

そして私のコード(テスト計算の始まり):( インポートブロックがここのコードフォーマットに入らないことを申し訳ありません)

パッケージ com.mytest.threedee;

com.mytest.threedee.R をインポートします。android.app.Activity をインポートします。android.os.Bundle をインポートします。android.view.Menu をインポートします。android.widget.TextView をインポートします。import static java.lang.Math.*;

public class MainActivity extends Activity {

static final double pixPerRad = 4850;
static final double center2Dhor = 276.6;
static final double center2Dver = 293.7;
static final double short2D = 426.3;
static final double long2D = 2719.3;
static final double tilt2D = -0.2557;

double minor, major, MSC, CSL; // angles
double CM, MS, ML, CL; // distances
double gQJ, gVQ, gQL, gHL, gVL, gMLV, gCLQ; // temporary guessing variables
double[] gCQ, gmajor; // guessing variables whose guess values will be stored

String[] gmajor_Text;
String[] gCQ_Text;

TextView text1 = null;
TextView text2 = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    text1 = (TextView)findViewById(R.id.textView1);
    text2 = (TextView)findViewById(R.id.textView2);

    minor = short2D/pixPerRad;
    major = long2D/pixPerRad;

    MS = 1/asin(minor); 
    ML = MS; 
    CM = sqrt(MS*MS - 1);
    CL = MS - ML;

    // Guessing triangle VQJ:

    for (int i=0; i<2; i++)
    {       
    gCQ[i] = i/3; // First two guesses

    // Side QJ:

    gQJ = sqrt(1 - gCQ[i]*gCQ[i]);

    // Side VQ:

    gQL = sqrt(CL*CL + gCQ[i]*gCQ[i]);
    gCLQ = asin(gCQ[i]/gQL);
    gMLV = gCLQ;
    gHL = ML*cos(gMLV); 
    gVL = 2*gHL;
    gVQ = gVL - gQL;

    // major angle resulting from guess:

    gmajor[i] = 2 * atan(gQJ/gVQ);

    gmajor_Text[i] = String.valueOf(gmajor);
    gCQ_Text[i] = String.valueOf(gCQ);


    }//END for i
    text1.setText(gmajor_Text[0]);
    text2.setText(gCQ_Text[1]);



}//END onCreate

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}//END MainActivity

4

2 に答える 2

3

まだ配列を初期化していません

double[] gCQ;
// later, you use it as is
gCQ[i] = i/3; 

onCreate()内部または外部のいずれかで初期化する必要があります

gCQ = new double[size];

double[]あなたとあなたの両方に同じことが言えますString[]

于 2013-02-05T14:29:17.453 に答える
0

クラッシュの原因が 1.7 であるかどうかはわかりませんが、Android SDK は Jdk 1.6 のみをサポートしていると思いました。

これが機能するかどうかはわかりませんが、同様のものへのリンクがあります: Can the Android SDK work with JDK 1.7?

于 2013-02-05T14:24:55.970 に答える