0
import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.widget.TextView;

public class MainActivity   extends   Activity {
    public native String     stringJNI();

    static {
        System  .  loadLibrary  ("Androidqw");
    }    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         TextView myTextField = (TextView)findViewById(R.id.myTextField);
            myTextField.setText(stringJNI()); //get exception
    }

    @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;
    }

}

で InvocationTargetException を取得しmyTextField.setText(stringJNI())ます。なぜこれを取得しているのかわかりません。SDK の最小バージョンは 10 で、ターゲットは 11 です。

4

1 に答える 1

0

これは、関数 StringJNI() の宣言に誤りがあるためです。

extern "C"
{
JNIEXPORT jstring JNICALL Java_com_example_andest1_MainActivity_stringJNI(JNIEnv* ssenv,jobject clazz);
}
JNIEXPORT jstring JNICALL Java_com_example_andest1_MainActivity_stringJNI(JNIEnv* env,jobject clazz)
{
}

ssenv 間違ったポインタ変数

于 2013-01-30T03:39:32.107 に答える