问题一: 06-09 18:35:26.044: A/libc(17098): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 17098 (d.message.push1)
显示的为
06-09 18:35:35.714: E/AndroidRuntime(17841): Caused by: java.lang.NullPointerException
具体到代码位置,显示就是空指针
实际上这个错误和读取的位置没有什么太大的关系。是由于我在另一个Activity里面调用到这个方法才出错的。
调用出错的原因就是图片的不匹配,在配置文件***.xml里面
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/tree"
>
只需要把background的图片改掉,或者删掉即可
问题二: listview里面显示的乱序问题
Adapter里面的getview函数如图
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = messaInflater.inflate(R.layout.messageitem,null);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.ItemTitle);
holder.text = (TextView) convertView.findViewById(R.id.itemText);
convertView.setTag(holder);
}
else{
holder = (ViewHolder)convertView.getTag();
}
int num;
num=position+1;
holder.title.setText(mainChannel.messinfo.get(position).gettimelist());
holder.text.setText(mainChannel.messinfo.get(position).getmeslist()+" "+position);
Log.v("message---",mainChannel.messinfo.get(position).getmeslist());
return convertView;
}
这里的holder并没有设置成静态的,所以在listview里面增加条目,或者是在下滑的过程中会出现条目的乱序问题。
解决办法:
把holder对象的控件单独在静态类里面声明就可以了。
static class ViewHolder
{
TextView title,text;
}
问题三:Studio中jar包重复问题,在写发起网络请求的HTTP请求方法时
出现报错:Duplicate files copied in APK META-INF/LICENSE.txt
我导入的两个HTTP的jar包是httpclient和httpcore.
解决一:网上找到相关资料在build.gradle文件中加入
packagingOptions {
exclude
'META-INF/LICENSE.txt'
}
并且在Mainfest.xml文件中插入
<uses-permission android:name="android.permission.INTERNET" />clean,rebuild之后仍旧没有任何效果
解决二:对比之前的发起请求工程,这两个包在android 自带的sdk中就有,因为之前运行的环境是API23,google刚好在这个版本中把HTTP的包给删除了。
所以,只需要改成API19的平台环境,就不需要自己导入jar包了。
补充:MAC 环境下,把jar包添加进去是在project structure里面,就在设置图标的旁边(刚开始找了半天)
快捷键 command加; (和eclipse位置不同)
问题四: 在adt工程转变成studio工程,遇到配置错误。 在使用百度云推送的过程中,采用云推送的demo,错误代码 10101
解决办法:
1. 修改AndroidManifest.xml文件中的API key 是否与控制台的一致。
2. 导入jar包 和so 文件,jar包导入如问题三
so 文件导入 在build.gradle文件中的android{}里面,加入一段代码,即可
task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
destinationDir file("$projectDir/libs")
baseName "Native_Libs2"
extension "jar"
from fileTree(dir: "libs", include: "**/*.so")
into "lib"
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
3. 网络原因:手机推送的时候网络有点慢,所以要稍微等一会儿
问题五:工程从svn下载后编译正常没问题,但是运行报错。
A problem was found with the configuration of task ':app:packageONLINEDebug'.
res/resources-ONLINE-debug-stripped.ap_' specified for property 'resourceFile' does not exist.
解决办法:
buildTypes {
debug {
zipAlignEnabled true
shrinkResources true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
release {
zipAlignEnabled true
shrinkResources true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
代码中的debug里面的 zipAlignEnabled和shrinkResources 分别设置成false即可。
问题六: Execution failed for task ‘:transformNative_libsWithStripDebugSymbolForDebug’.
java.lang.NullPointerException(no error message)
ndk.dir=/Users/apple/Library/Android/sdk/ndk-bundle
问题七: Android studio不停的自动刷新。注释JUNit包以后也并没有用
从 gradle 里面的 cache 中找到 依赖的包,删除hamcrest-core-1.3-sources即可
顺便手动更新gradle-wrapper.properties 文件中的 gradle 版本
http://services.gradle.org/distributions/