android 驱动调试错误分析

来源:互联网 发布:h3c批量配置端口模式 编辑:程序博客网 时间:2024/06/03 18:35
1.编译的时候经常会遇到   ISO C90 forbids mixed declarations and code 警告

百度了一下,知道是如下原因 :

       变量定义之前任何一条非变量定义的语句(注意:语句是会带分号的)都会引起这个警告!

解决方法:

        将非变量的定义移到变量定义之后 即可

        在内核中还需要将   printk的打印放在变量定义之后

2.接口找不到
在Java中调用JNI接口时,出现异常,察看日志,发现有如下错误:
WARN/dalvikvm(422): No implementation found for native Lcom/whty/wcity/HelixPlayer;.setDllPath (Ljava/lang/String;)V
检查了几遍代码,Cpp中确实定义了这个接口,而且仔细对照了Java的包名、类名,确实没有错误,那为什么会出现这种问题呢。后来突然想到,JNI接口 都是以C的方式定义的,现在使用C++实现,函数定义前是否需要加上extern "C"呢?为此定义了一个头文件,在CPP文件中include该头文件,头文件加上如下代码片断:
#ifdef __cplusplus
extern "C" {

...

}

注意得把所有方法放在大括号里才能实现

3.java.langSecurityException:Sending SMSmessage:uid 10057 does not have`android.permission.SEND_SMS

(1)在AndroidManifest.xml中添加如下语句:

添加<uses-permission android:name="android.permission.SEND_SMS"/>

(2)在继承了Activity类的方法onCreate中,添加如下方法:

   super.onCreate(savedInstanceState);

setContentView(R.layout.main);

ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.SEND_SMS} , 1);最后填小于零不提示不能使用


原创粉丝点击