一直都是搞JNI得半成品,今天想从头来一次,结果就遇到一个很low的错误,给大家分享一下
错误: 无法访问android.app.Activity
我随便写了个JNI方法,activity代码如下
package com.example.jqjni_1;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("dufresne", printJNI("I am HelloWorld Activity"));
}
private native String printJNI(String inputStr);
static{
System.loadLibrary("JqJniOne");
}
}
然后我进入到根目录的bin,下,classes 下执行如下:
localhost:JQJNI-1 jq$ ls
AndroidManifest.xml ic_launcher-web.png res
assets libs src
bin proguard-project.txt
gen project.properties
localhost:JQJNI-1 jq$ cd bin/
localhost:bin jq$ ls
AndroidManifest.xml classes.dex res
JQJNI-1.apk dexedLibs resources.ap_
classes jarlist.cache
localhost:bin jq$ cd classes
localhost:classes jq$ ls
com
localhost:classes jq$ javah com.example.jqjni_1
错误: 找不到 'com.example.jqjni_1' 的类文件。
localhost:classes jq$ javah com.example.jqjni_1.MainActivity
错误: 无法访问android.app.Activity
找不到android.app.Activity的类文件
最后,退到src 目录
localhost:JQJNI-1 jq$ cd src/
localhost:src jq$ ls
com
localhost:src jq$ javah -d ../jni com.example.jqjni_1.MainActivity
localhost:src jq$
结果生成了了
ok,成功了。