Android
何雷 — 智能汽车
奇瑞雄狮汽车科技基础软件中心,负责为奇瑞旗下各品牌汽车开发系统软件,欢迎大家的加入
展开
-
Win10下adb连接到华为Mate10 Pro手机
这里假设你已在Win10下安装好adb驱动,按照以下步骤进行adb连接操作:1. 打开开发人员选项打开手机的“设置”->“系统”->“关于手机”,快速点击下图中的“版本号”7到8次即可在“系统”中看到“开发人员选项”,如下图所示:2. 打开USB调试功能在“开发人员选项”中,打开USB调试功能,如下图:此时,在cmd打开的命令窗口中,...原创 2018-12-16 22:35:25 · 9499 阅读 · 1 评论 -
Eclipse工程文件拷贝到Android Studio下,编译出现乱码错误
错误如截图所示:【错误原因】:Eclipse中utf-8编码带有BOM Header字节,加载到Android Studio中时,被转换为utf-16导致该问题出现,如截图右下角所示UTF-16EF。【解决方法】:点击Android Studio右下角的UTF-16EF,弹出窗口:选择”Convert“,完成UTF-16EF到UTF-8的转码即可原创 2018-01-09 09:47:20 · 311 阅读 · 0 评论 -
ioctl(KVM_CREATE_VM) failed
通过Android Studio启动模拟器,弹出启动错对话框如下:提示的意思即:通过内核调用接口ioctl()让Linux的内核虚拟机KVM创建一个新的虚拟机,但是KVM设备当前被占用,处于忙碌状态。KVM知多少 KVM是Kenel Virtual Machine的所写,直译为内核虚拟机。KVM是Linux系统在X86体系架构上的基于内核的虚拟机,是一个完原创 2017-08-31 15:44:33 · 2261 阅读 · 0 评论 -
java.lang.UnsatisfiedLinkError: Couldn't load XXX
这是一种很常见的Android apk中jni的.so加载错误。本人遇到的这个情况比较特殊,现象如下:安装apk,然后重启设备,利用am startservice -a命令启动apk,都会出现该错误。重新安装apk,不重启设备,直接运行启动命令,可以正常启动运行。 于是,将设备重启后的所有log都打出来,发现如下异常:E/AndroidRuntime( 3207): java原创 2017-05-19 09:42:24 · 1194 阅读 · 0 评论 -
Android系统目录/system/etc下自建文件存在却无法访问
真机环境下由于项目需要,在Android系统的/system/etc目录下自建目录alta。开发阶段,通过adb shell进入控制台,执行mkdir命令新建该目录,并将需要的xml文件push到该目录下。 编写apk程序,读取xml文件内容,利用本人另外一片博客(Android下一种打开并读取指定路径文件内容的方法)中的方法,执行发现始终找不到指定的路径,实际查看文件确实存在,原创 2017-05-16 15:40:02 · 10450 阅读 · 0 评论 -
adb的am start命令启动Activity报Error type 3错误
用adb的“am start -n com.example.autolinktest/.MainActivity”命令启动一个应用,错误提示如下:Starting: Intent { cmp=com.example.autolinktest/.MainActivity }Error type 3Error: Activity class {com.example.autolinktest/co原创 2017-05-04 18:11:46 · 19842 阅读 · 3 评论 -
Parcelable中List数据的跨进程读写操作
Android中利用Parcelable接口封装数据进行跨进程传递,对int,long,float等基本数据类型,通过在writeToParcel(Parcel dest, int flags)重载接口中调用对应的writeXXX(XXX为基本数据类型)写入,在Creator<T>接口的public T createFromParcel(Parcel source)重载方法中调用对应的readXXX原创 2017-04-11 18:18:26 · 1679 阅读 · 0 评论 -
Android aidl 编译错误:couldn't find import for class
利用AIDL机制实现跨进程通信和数据传输,AIDL文件中方法中含有自定义的数据类型,import自定义数据类型后,Eclipse上该行出现红叉,错误提示:couldn't find import for class ***【问题原因】:AIDL跨进程通信,进行数据传递时,支持的数据类型有限制,见Android Interface Definition Language (AIDL)中“1.建立.a原创 2017-04-11 17:56:27 · 5707 阅读 · 2 评论 -
NullPointerException:null result when primitive expected
完整异常日志如下:E/AndroidRuntime( 962): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.audiopolicytest/com.example.audiopolicytest.MainActivity}: java.lang.NullPointerExcepti原创 2017-03-31 10:47:47 · 1174 阅读 · 0 评论 -
由代码混淆引发的java.lang.ClassNotFoundException
完整错误日志如下:I/Chiron ( 57): java.lang.ClassNotFoundException: Didn't find class "com.alta.audiopolicyloader.AudioPolicyLoader" on path: DexPathList[[zip file "/data/app/com.alta.audiopolicyloader-1.ap原创 2017-03-31 10:35:20 · 6994 阅读 · 0 评论 -
Ubuntu下,adb devices出现no permissions (verify udev rules)
终端输入adb devices命令,出现如下错误提示:00001702161754350013 no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]【问题原因】:Ubuntu下未添加adb的usb驱动 【解决办法】:在目录/etc/udev/rules.d/下添加文件原创 2017-03-28 16:20:44 · 10847 阅读 · 1 评论 -
error: conversion from 'Test*' to non-scalar type 'Test' requested
Android系统源码AOSP(Android Open Source Platform)下编译的.so在NDK环境下使用时,NDK编译报标题所示错误。Test类源码如下:class Test{ public: Test(); void helloWorld(); };jni中的使用代码如下:Test test = new Test();test.he原创 2017-03-27 12:00:48 · 26094 阅读 · 2 评论 -
Android下一种打开并读取指定路径文件内容的方法
Android下一种打开并读取指定路径文件内容的方法 源码如下:private void readFile(String filePath){ if(filePath == null) return; File file = new File(filePath); if(file.isDirectory()){ Log.d原创 2017-03-22 13:11:35 · 7259 阅读 · 0 评论 -
Error converting bytecode to dex
用gradle编译Android app,build.gradle文件是自己手动编写的,编译时报错:Dex: Error converting bytecode to dex:Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/Acces原创 2017-03-21 15:49:46 · 1026 阅读 · 0 评论 -
RegisterNatives注册失败,返回错误码-1
Android4.4.2中,JNI代码调用jint RegisterNatives(jclass clazz, const JNINativeMethod* methods, jint nMethods)接口注册native接口,编译无错误,运行时返回错误,错误码为-1。【问题原因】:cpp中JNINativeMethod methods[ ]数组中待注册的接口,在java中无对应的本地接口定原创 2017-03-16 14:40:50 · 3862 阅读 · 0 评论 -
gradle : Error converting bytecode to dex
解决办法:在gradle.build文件中添加如下内容:android { ........ dexOptions { preDexLibraries = false } ........}clean后rebuild。原创 2017-03-10 16:53:20 · 1033 阅读 · 0 评论 -
Android 程序员必须掌握的三种自动化测试方法
原文地址:http://www.cnblogs.com/punkisnotdead/p/5103323.html在日常的开发中,尤其是app开发,因为不像web端那样 出错以后可以热更新,所以app开发 一般对软件质量有更高的要求(你可以想一下 一个发出去的版本如果有重大缺陷 需要强制更新新客户端是多么蛋疼的事情)。恩,所以我们app的开发者 一定要学会自己测试自己的代码 自己测试自己转载 2016-12-27 11:37:26 · 2684 阅读 · 0 评论 -
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
利用XposedBridge框架开发,对系统接口进行Hook。编译出的xposed模块,在系统启动加载时失败,报错误如下:Loading modules from /data/app/com.alta.audiopolicyloader-1.apkI/Xposed ( 58): Loading class com.alta.audiopolicyloader.AudioPolicy原创 2016-12-15 18:11:54 · 3055 阅读 · 0 评论 -
Gradle编译时,assets文件未打包进apk
没有用Android Studio导入,采用自己编写的build.gradle文件,在命令行中直接键入 gradle build命令进行编译,发现assets目录下的资源文件未被打进apk中,反而是所用的第三方jar包中的资源打进去了。【问题原因】:build.gradle文件中sourceSets配置项没有配置assets资源目录。【解决方法】:在build.gradle文件中添加如原创 2016-12-15 17:38:47 · 7007 阅读 · 1 评论 -
The original file 'AndroidManifest.xml' has been deleted or is not accessible
Eclipse上进行代码编辑,一直工作良好,直到编辑AndroidManifest.xml文件后,进行保存,直接给出下图所示错误:点击“Yes”,再次编辑保存,错误依旧。【问题原因】:不详,估计是Eclipse环境配置发生变化导致。【解决方法】:关闭Eclipse,重新启动即可原创 2016-12-15 11:41:13 · 1577 阅读 · 0 评论 -
Failed to apply plugin [id 'com.android.application']
Gradle版本2.14,编译报如下错误:【问题原因】:gradle.build配置项dependencies中,依赖的gradle编译工具版本过高,如下:dependencies { classpath 'com.android.tools.build:gradle:2.2.0' }2.2.0需要2.14.1以上的gradle版本支持。【解决方法】:将dep原创 2016-12-12 16:57:20 · 8715 阅读 · 0 评论 -
gradle编译错误:-source 1.6 中不支持 diamond 运算符
Gradle版本是2.14,JDK版本是1.6。从地址:https://github.com/rovo89/XposedBridge.git下载最新XposedBridge源码,配置好sdk路径,执行命令:gradle build出现如下错误提示:XposedBridge/app/src/main/java/de/robv/android/xposed/XposedHelpers.ja原创 2016-12-09 15:33:21 · 1852 阅读 · 0 评论 -
Gradle环境下添加JNI编译
这里只涉及如何在build.gradle文件中添加自动编译配置,不包括如何JNI文件的新建和添加。 本人所用的gradle版本为V3.1。1、修改local.properties属性文件,添加NDK工具路径如下:ndk.dir=xxx2、修改build.gradle,添加编译任务:task ndkBuild(type: Exec) { commandLin原创 2016-11-16 11:09:23 · 4413 阅读 · 0 评论 -
也谈Eclipse未自动在gen目录下生成R.java
利用Eclipse创建Android project后,gen目录下没有自动生成R.java文件。尝试clean工程,还是无效。更新ADT耗时较长,没有去尝试。 观察Eclipse上的其它工程,都可以自动生成,估计不是什么ADT没有更新的问题。打开工程的properties窗口,在Android选项卡中,发现新建工程的SDK版本为Android6.0,而其它工程的则未Androi原创 2016-08-26 16:37:30 · 4157 阅读 · 0 评论 -
java.lang.IllegalStateException: beginBroadcast() called while already in a broadcast
问题log如下:07-26 17:27:48.620 W/System.err( 1784): java.lang.reflect.InvocationTargetException07-26 17:27:48.620 W/System.err( 1784): at java.lang.reflect.Method.invokeNative(Native Method)07-26 17:原创 2016-07-27 17:47:36 · 14020 阅读 · 3 评论 -
Adroid中Toast自定义显示时间
Toast是Android中使用频率较高的弹窗提示手段,使用起来简单、方便。常规使用方法这里不做说明,继前一片博客《Android中Toast全屏显示》,其中抛砖引玉的给出一个简单的实现Toast全屏显示的方法后,发现无法控制Toast的显示时长。虽然Toast中有setDuration(int duration)接口,但是跟踪代码发现,设置的时间没起作用,只有系统默认的两个时间LENGTH_原创 2016-07-14 14:28:34 · 11913 阅读 · 1 评论 -
Android中Toast全屏显示
废话不说,直接上代码:private void toastFullScreen(){ Toast toast = Toast.makeText(this, null, Toast.LENGTH_LONG * 10 * 1000); toast.setGravity(Gravity.CENTER, 0, 0); LinearLayout toastView = (LinearLayout)原创 2016-07-13 11:24:53 · 4184 阅读 · 0 评论 -
命令行修改Android系统时间
1、修改前提 获取系统root权限,然后adb shell进入shell界面2、时区设置 执行如下命令:cat /data/property/persist.sys.timezone //查看当前时区配置文件setprop persist.sys.timezone GMT //修改属性 3、设置日期和时间 命令格原创 2015-11-16 18:32:06 · 33321 阅读 · 1 评论 -
Android jni库加载错误:java.lang.UnsatisfiedLinkError
Android动态加载的时候,出现如题所示错误,直观错误是提示:XXX函数未实现。此类错误照以往经验,是由于java工程中native方法所属的jpackage名与C中的native实现函数名中所含的pankage名不一致所致。 我的工程中jar包和so都是第三方提供的,不存在这个问题。后来仔细看了下加载日志,发现是so加载不成功,我明明将so放在libs/armeabi目录下了原创 2015-05-29 15:14:16 · 2490 阅读 · 0 评论 -
java.util.ConcurrentModificationException
在Android app开发中,在多线程中使用linkedList时,报上述错误。看了下源代码和错误的位置,发现是在next()中expectedModCount和list.modCount不相同导致的。分析原因是因为该类是非线程安全的,多线程操作同时操作,为进行线程同步导致expectedModCount和list.modCount不一致。 解决办法:将linkedList换成原创 2015-05-14 14:41:00 · 721 阅读 · 0 评论 -
java.net.BindException: bind failed: EADDRINUSE (Address already in use)
做一个Android上的UDP通信程序,直接用代码:mDataSocket = new DatagramSocket(mPort);第一次连接没有报错,第二次开始报这个错误。字面意思看出是由于端口被占用,未释放导致。虽然程序貌似已经退出,个人猜测是由于系统还没有及时释放导致的。解决办法: 将上面的代码换成:if(mDataSocket == null){原创 2015-04-23 13:06:45 · 10986 阅读 · 1 评论 -
ndk编译错误:error: 'nullptr' was not declared in this scope
nullptr是C++11引入的新特性,解决C和C++中NULL的定义不一致所带来的编译器兼容问题。C中NULL是指向0地址的指针(void *)0,c++中则是定义为整数0. ndk中解决这个问题的办法就是添加对C++11的支持,在Application.mk中添加:NDK_TOOLCHAIN_VERSION = 4.9APP_CPPFLAGS := -frtti -std=原创 2015-03-19 11:02:03 · 20554 阅读 · 0 评论 -
ndk编译错误:error: 'override' does not name a type
Ubuntu12.04下用NDKR10C编译webrtc的libjingle_peerconnection_so, 遇到文章标题所示错误。查了下,“override”是C++11版新加的特性,与final想对应,用于在子类中显示指定所继承的方法能不能被覆盖。GCC从4.7版本开始支持此特性。 解决办法:终端输入ndk-build V=1, 查看输出信息,当前NDK用的是arm-li原创 2015-03-19 10:42:38 · 8962 阅读 · 0 评论 -
error: exception handling disabled, use -fexceptions to enable under Android NDK enviroement
导致该问题的原因是NDK编译C++文件时,对异常处理是不予支持的,默认是:-fno-exceptions。这大概与早期的NDK工具仅是C++的最小化运行库有关。在NDK r5之后开始支持C++的异常控制处理了。 解决问题的办法有两种: 1)整个应用层面:即对所有编译模块都起作用,在Application.mk中添加如下内容:APP_CPPFLAGS :=原创 2015-01-30 11:12:20 · 2178 阅读 · 0 评论 -
iostream: No such file or directory in Android NDK Environment
解决办法:在jni目录下的Application.mk中添加如下内容:APP_STL := stlport_static如果没有,新建一个Application.mk,添加即可原创 2015-01-30 10:59:30 · 3274 阅读 · 0 评论 -
arm-linux-androideabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
用android-ndk-r7b编译JNI程序,将拷贝过来的原创 2014-07-13 16:48:12 · 6143 阅读 · 1 评论 -
Error : UDP timeout, retrying with TCP
在Android上用ffmpeg 1.2.1播放rtsp实时视频监控流,发现直接访问内网中到摄像头没问题。但是通过公网服务器转发,播放虚拟rtsp服务器到视频时出错,直接显示打开文件失败。我到打开文件代码如下:err = avformat_open_input(&gCtx->av_ctx, file_path, NULL, NULL);if (err < 0) { debug("==原创 2013-12-31 17:45:53 · 4175 阅读 · 0 评论 -
如何发布你的Android应用程序
中文原文连接:http://www.aqee.net/some-things-to-know-about-publishing-android-apps/到目前为止,在Android交易市场(Android Market)里,已经有我的2个应用程序了,所以,我想写出一点关于Android应用程序发布过程的东西,用来告诉那些想发布自己的应用程序的朋友们,在发布过程中会遇到哪些的事情。转载 2013-08-28 11:03:38 · 1419 阅读 · 0 评论 -
Android crash之NoClassDefFoundError
用同事提供的jar包,导入之后,调用接口,运行直接报以下错误;E/AndroidRuntime(25435): FATAL EXCEPTION: mainE/AndroidRuntime(25435): java.lang.NoClassDefFoundError: com.raycommtech.ipcam.UtilE/AndroidRuntime(25435): at com.ray原创 2013-06-04 14:17:11 · 2953 阅读 · 0 评论 -
Android4.2中Bitmap的copyPixelsFromBuffer( )crash
开发了一个观看摄像头视频的应用,一直用的很好,有一天客户突然反馈说在他的手机上崩了,顿时无语。问了下,才知道客户用的Galaxy Nexus 3用的是Android4.2系统,当初开发程序的时候,4.2的设备还木有,估计是兼容性的问题。 找了个4.2的设备,运行报以下错误:05-29 16:21:22.389: D/AndroidRuntime(1173): Shutting原创 2013-05-29 17:24:13 · 15277 阅读 · 2 评论