安卓开发遇到的各种问题
1. 运行时出现的 java.lang.NoClassDefFoundError: org.htmlparser.Parser
出现这个问题,首先当然去查引用。发现引用包里有这个类呀。折腾了好久,后来才发现原来是这个类的依赖类没的。(是在eclipse里试出来的)引入一个htmllexer.jar包就好了。
这里的错误提示太误导人了。缺什么就提示什么呗。硬是把最上层的不缺的打映出来。
2. Multiple dex files define Lorg/htmlparser/util/SimpleNodeIterator;
我先说网上搜到的解决办法吧:f1 Project-> Clean 然后再Project -> Build All 这个是通过清空历史文件,重新编译的方法。
f2 其实,就是在你的项目下某个文件夹中有一个后缀为*.APK的文件,删掉,重启Eclipse即可。另外提醒下,一定要重启Eclipse!!
上面的是我从http://blog.csdn.net/asan855/article/details/7568702看到的。
f3 然后我遇到的情况却是。jar包里确实有两个一样的class。我们知道eclipse里是可以引用多个一样的包或类的。但安卓不让有一样的类,然后我就找到那个jar包,用RAR打开,删除其中的一个类。就ok了。
3. service类没有放到基本包下面,运行startService(loopRequestService);没反应,也不报错,service也不启动。
基本包在这里定义的:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.angelshelter.fanmore.android.v1"
解决办法是把service类定义移动基本包下面。
4.
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files (x86)\Java\jdk1.8.0_102\bin\java.exe'' finished with non-zero exit value 2
原因是我在开发apicloud插件的时候,引入了android-support-v4.jar包,可能与系统自带的冲突,删除就好了。(jar包有冲突)
2017-05-23
一键真机测试的时候报错:The selected device is incompatible.
这个是因为build.gradle的minSdkVersion 10太高了,比你现在连接的手机高,所以你要把最低版本号调低一点或者换个新手机,记住,修改后要Build -> clean Project 一下才会生效。
2017-05-24
一头撞死算了,昨天我居然写出了一个死循环而不自知,还各种怀疑是不是开发环境有bug? 即没有报错,又没有执到结束,子线程也没有修改宿主类的成员变量。。。。
大家也来瞧瞧,一眼看出来的是大神
String line = br.readLine(); while(line!=null){ if(!line.startsWith("#")){ if(line.length()==0){ continue; } M3u8Entity.TS ts = new M3u8Entity.TS(line, baseUrl + line); entity.addTS(ts); } line = br.readLine(); }
2017-07-14
做播放器的时候,如果集成的播放器框加没有暴露出它的控制组件层什么时候显示,什么时候隐藏,有时候,你想小屏的时候隐藏返回,全屏的时候显示全屏。
发现自己设置visible并没有效果,因为框架会经常地修改setVisibility值,又不告诉你,每次它设置setVisibility值的时候,就会覆盖你自己的设置。
有一种另寻窍门的办法是,框架设置setVisibility,你可以设置透明度呀,透明度为1的时候不可见,透明度为255的时候可见。
如果是图片就是setAlpha(255);如果是View就是.getBackground().setAlpha(255);
2017-08-29
不作死就不会死。最近又遇到了UnsatisfiedLinkError问题。我把所有的so文件都加进去了的呀。一直以为只要把so文件放到jniLibs目录里就会自动加载,我又错了。需要用
System.loadLibrary("QuCore-ThirdParty");
去加载so文件。
所以呀,在学习一个SDK开发包的时候,那个继承Application的类是最核心的,一般在它里面做一些初始化工作。一定要看。
2017-08-30
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.administrator.appcompattest/com.example.administrator.appcompattest.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
检查 value.xml文件,是有定义Theme主题的,在看AndroidManifest.xml文件里面也设置了主题,为什么还是报这个错误了,后来花了我一晚上的时候,在对比中发现,原来是我自己生成的R文件(手动生成的)有问题。
2017-09-06凌晨
前几天开发中遇到的android.support.v7.widget.RecyclerView类找不到报错。今天找到原因了。
虽然我是看jar里面确实是有这个类。造成这个原因,是因为我在android-support-recyclervew多个版本之间换了部分类,造成RecyclerView依赖的类找不到,所以不能实例化RecyclerView。
又因为这个类是在jar包里面,所以Android Studio编译通过了,并没有发现有什么不对。
2017-09-08
在做安卓协议打开APP的时候,发现怎么做都不生效,后来打了一个正式包,居然有效了,原来usb运行对协议无效。
2017-09-24
Toast不能在非ui线程中调用。
2018-03-24
mAudioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, SAMPLE_RATE_IN_HZ, AudioFormat.CHANNEL_IN_DEFAULT, AudioFormat.ENCODING_PCM_16BIT, BUFFER_SIZE);
这个只能调用一次,如果调用第二次,然后
mAudioRecord.startRecording();
就会报错:报了
java.lang.IllegalStateException:
startRecording() called on an uninitialized AudioRecord. at android.media.AudioRecord.startRecording(AudioRecord.java:986) at cn.angelshelter.app.apicloud.decibel.DecibelModule$1.run(DecibelModule.java:85) at java.lang.Thread.run(Thread.java:761)
正确的处理流程是
if(mAudioRecord!=null){
mAudioRecord.stop();
mAudioRecord.release();
}
mAudioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
SAMPLE_RATE_IN_HZ, AudioFormat.CHANNEL_IN_DEFAULT,
AudioFormat.ENCODING_PCM_16BIT, BUFFER_SIZE);
2019-12-08
修改AndroidManifest.xml下面的package包名,发现并没有生效。
然后找到build.gradle文件,看到一行
defaultConfig {
applicationId project.ANDROID_BUILD_APP_PKG
}
虽然我没有找到那个project文件在哪,但把 applicationId project.ANDROID_BUILD_APP_PKG 这一行注解掉就可以了。
posted on 2014-11-30 09:50 angelshelter 阅读(389) 评论(0) 编辑 收藏 举报