项目中的bug

总结是一个很好的习惯,但是出问题也别全靠别人,看好异常信息,你就能解决问题。

1.gradle version 问题

导入别人的项目的时候出现版本问题,此刻你只需要修改gradle版本号和自己本地一致就可以运行别人的项目了。
错误样式 ———————————————————————————————————————————————————
解决方案

2.umeng分享到QQ显示网络异常,分享失败(切记看打印的log)

本来以为是umeng的问题,看了错误才发现是图片配置错误,umeng分享到QQ时如果携带图片,配置的图片路径一定要是对的,否则找不到图片分享就会失败,显示错误如下:这里写图片描述

3 android:allowBackup=”true” 数据备份危险

  • 在项目节点中存在allowbackup属性,此定义表示允许备份此应用数据,使用备份命令就可以将你该应用的数据备份到电脑端,如果存在重要的信息,建议将其设置为false,具体数据备份命令,请自行查找资料…
  • 将其设置成android:allowBackup=”false”,之后,运行可能会出现如下错误:
  • 这里写图片描述
  • 运行之后给出了错误提示,也给出了相应的解决办法。
    -添加 tools:replace=”android:allowBackup” 到节点,添加此属性是因为你依赖的项目或者jar包中包含android:allowBackup=”true”,merge的时候会出现失败的情况,使用replace再次运行就会正确。

4 ButterKnife使用NullPointException

小细节很重要,之前使用ButterKnife的时候没有注意到,昨天再次用的时候报NullPointException才发现,Activity中使用

// 查找id,
    @BindView(R.id.listview)
    public ListView listView;
onCreate方法中绑定ButterKnife
切记ButterKnife.bind(this)在setContentView设置布局方法后使用

5 BuildConfig.DEBUG 返回为false导致使用其判断的log输入打印不出来

 log输入项目中是根据BuildConfit.DEBUG 动态识别是否是正式包的,如下:
  public class LogUtils {
    public static final boolean DEBUG = BuildConfig.DEBUG;

    public static void v(String tag, String message) {
        if (DEBUG) {
            Log.d(tag, message);
            }
    }
 }
可是项目debug模式的情况下获取的DEBUG出现false情况,导致日志打印不出来,解决办法如下:
在项目的build.gradle文件下修改如下:
修改前:
   dependencies   {
      compile project(':ViewPagerIndicator')
    }

修改后:

 dependencies{
    releaseCompile project(path: ':ViewPagerIndicator', configuration: 'release')
    debugCompile project(path: ':ViewPagerIndicator', configuration: 'debug')
    }

修改的同时需要在你添加依赖的项目包下的 build.gradle文件中修改如下:

android {
         //添加下面这句代码
    publishNonDefault true
    }

然后编译一下,就ok了

6 数据库连接更新时字符乱码

项目中,需要访问数据库,并且更新相对应的字段,set='中文',按照一般的格式直接更新时,数据库在更新成功后,显示的为问号(?),出现此问题的主要原因为字符集不一致的原因。
    /**
     * 功能:数据库连接
     * 
     * @param DbType
     * @return Connection
     */
    public static Connection getConn(DbType DbType) {

        String driver = null;
        String url = null;
        String user = null;
        String pwd = null;
        String maxActive = null;
        DruidDataSource dataSource = new DruidDataSource();

        switch (DbType) {
        case 数据库1:
            driver = config.get("数据库1");
            url = config.get("数据库1");
            user = config.get("数据库1");
            pwd = config.get("数据库1");
            maxActive = config.get("数据库1");
            break;
        case 数据库2:
            driver = config.get("数据库2");
            url = config.get("数据库2");
            user = config.get("数据库2");
            pwd = config.get("数据库2");
            maxActive = config.get("数据库2");
            break;
        default:
            driver = config.get("数据库1");
            url = config.get("数据库1");
            user = config.get("数据库1");
            pwd = config.get("数据库1");
            maxActive = config.get("数据库1");

        }

        try {
            dataSource.setDriverClassName(driver);
            //之前数据库的url连接方式
            //dataSource.setUrl(url);
            //添加字符集处理后的url连接方式
            dataSource.setUrl(url+"?useUnicode=true&characterEncoding=utf8");
            dataSource.setUsername(user);
            dataSource.setPassword(pwd);
            dataSource.setMaxActive(Integer.parseInt(maxActive));

            conn = dataSource.getConnection();
            System.out.println("MariaDB Connected Successfully!");
        } catch (SQLException e) {
            System.err.println("SQL Exception:" + e.getMessage());
        }
        return conn;
    }

使用此方式连接后,再次处理update操作,中文更新后在数据库就连接正常了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值