Android开发: 错误整理(不断更新)

问题一:   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)

网上搜了一下,这个是版本2.2的一个bug,自己没去升级,删除ndk后,重新编译就好了。
1. 升级NDK
2. 删除local.properties
ndk.dir=/Users/apple/Library/Android/sdk/ndk-bundle


猜你喜欢

转载自blog.csdn.net/ice_tum15/article/details/46430251