Android攻城bug分享-02

第一     项目中出现的问题 -迁移到as上的奇怪错误

        现在想必应该是只有少数的老项目因为维护成本的原因,还停留在ec上没有进行迁移。大部分的项目应该已经在as上运行了

这个也是必然趋势,as构建项目的能力要强于ec不知道多少倍,并且还是Google的亲儿子,这个自然非常强大。公司的一个

稍微旧一点的项目,在几经波折之后,还是迁移到as上,然后我就开始了漫长的bug修复之后。

第二     问题的表现

第一       迁移之后,最突出的问题就是api和版本不兼容的问题吗,这个倒是好改一些,百度一下之前迁移过来的已经给我们探过路的大神们已经分享了很多经验,这个就不多赘述了。

第二      编码问题,我去以前的人竟然没有用utf-8,真是厉害了,光这个就浪费了几天的时间,好在中间没有其他的任务,这个我个人的技巧就是先在原因的代码页面进行ctrl+A, 然后复制,保持这个状态不要做其他操作,然后去改变编码,改完之后发现是 utf-8 ,在Ctrl+V。这是以前改的时候的小技巧,主要是注释和一些注解要是不保留就真的呵呵了,但是页面太多了。如果大神有好的方法,可以分享一下。

改变编码的地方

第三     so文件的编译错误问题,改了好几遍,就是过不了编译。原因的话,要不就是你的so文件出现损坏,毕竟在ec上对so的审查不严格,对一些不重要的文件直接就忽略了。在as上比较严格,一般迁移过来的项目只要是不该目录的话,是不用动的,就在project视图的libs文件下

至于一般所说的jnilibs文件夹,在迁移的时候会自动生成的。用时在module的build.gradle文件的中android下边,去配置路径

sourceSets {

main {

          jniLibs.srcDirs= ['libs']

        }

}

这样应该是没有问题的,建议可以先更新或重新下载so文件,这样更靠谱一些。

第三   assets文件的加载问题

项目的修改已经快完成了,并且网络和图片的加载也重构了一遍。并且已经可以打包运行了,这个时候我感觉自己看见胜利的曙光了,但是打包之后,一个突如其来的bug,让我重新落入黑暗之中,第三方的分享不能正常使用。放在资产目录下的几个静态网页没有正常的加载。

针对这个问题,我先检查了一下网页加载的路径,发现没有错误。注意:反斜杠的个数啊,也许这个就是加载错误的原因

webview_about_us.loadUrl("file:///android_asset/About.html");

然后去检查权限配置,这个更没有了,开始的时候答应申请过了,这个比较无语。因为一般错误指向很明确,但是这个没有指向,也不报错,就是加载不出来。第三方分享也不能正常使用,因为第三方分享的配置文件,就在资产目录下放着呢。

我上官网上各种百度搜索,还是搞不定,有点蒙圈的感觉。然后就开始检查配置文件,因为ec迁移到as上需要配置的东西还挺多的,我找到了一个很相似的东西,就是在配置libs的时候

sourceSets {

main {

//            assets.srcDirs = ['assets']

              jniLibs.srcDirs= ['libs']

    }

}

这个地方的配置在迁移的时候为了方便同一配的模板,但是这次在项目中发现这样做会导致资产目录下的文件加载失败。

令外配置资产目录的时候,需要配置在project视图下的main目录下边,大家可以参照一下下面的文章的配置,可以直接这样做

" sourceSets {main {assets.srcDirs = ['src/assets','src/assets/'] } } "

www.cnblogs.com/zhangqie/p/6430366.html

第四   问题总结

一般来说,资产目录下放置的都是稍微大的文件,用来加载一些数据库或者相对较大的一些文件资源。现在一般都是用做混合开发的使用,一般在里面放置一部分静态网页来交互。

这些小的问题是迁移到as上的时候遇见的比较奇怪的问题,分享给大家看一下。如果有正在迁移的可以参考一下。令

如果有不对的话,烦请指正一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章