当前位置: 首页 > news >正文

南阳市网站建设简述网站设计的原则

南阳市网站建设,简述网站设计的原则,安装wordpress之前需要先安装包,如何在google上免费推广解决办法 问题原因就是#xff0c;各个模块所有的依赖#xff08;递归#xff09;的 jar 包最后都会加载到安卓的项目中#xff0c;你可以选择 project 形式查看 External Libraries#xff0c;都在这了。所以解决问题关键就是干掉冲突#xff0c;剩下一个就行了#xf… 解决办法 问题原因就是各个模块所有的依赖递归的 jar 包最后都会加载到安卓的项目中你可以选择 project 形式查看 External Libraries都在这了。所以解决问题关键就是干掉冲突剩下一个就行了或者全不要就行了 下面直接先上解决办法吧急性子就不为难急性子了本人最烦的就是说一大堆废话后面几行代码就能问题。 1、引入时剔除 //逗号别掉了implementation com.ezviz.sdk:ezuikit:2.2.1, {exclude group: com.squareup.okhttp3, module: okhttp}//或者用下面方式 // implementation(com.ezviz.sdk:ezuikit:2.2.1) { // exclude group: com.squareup.okhttp3, module: okhttp // }这里直接拿我解决的 SDK 为例其中 okhttp 冲突了。我的项目里面已经有一个 okhttp3.8.1 了这里导入这个库的时候又将 okhttp3.10.0 给导入进来了直接排除掉就可以具体说明文章末尾细讲 至于 group 和 module可以看我下面这个引入类比下 com.squareup.okhttp3:okhttp:3.10.02、全局删除 android{//....//剔除工程中所有的该依赖configurations {all*.exclude group: org.hamcrest, module: hamcrest-core} }这个是一个很傻的办法直接全局设定把导入的某 jar 包全部删除这样就不冲突了也许打包是没问题了只要用到功能必闪退吧貌似有人说要配合 Multidex 一起用看看咯 ps. 后续更新有可能是其他库带来的其实根本用不到还是有用的 3、开启 Multidex 功能 我是想不到 jar 包冲突和 Multidex 有什么关系但是看到几篇博客说能解决问题也顺便说一下吧我个人认为 Multidex 就是解决 class 过多的不知道是不是。 ps. 后续更新是不是可能引入的库造成了类太多了 步骤 1更改 build.grade defaultConfig {...// Enabling multidex support.multiDexEnabled true }dependencies {...compile com.android.support:multidex:1.0.1 }步骤 2设置 Application 类 public class MyApplication extends Application {Overridepublic void onCreate() {super.onCreate();MultiDex.install(this);} }步骤 3更改 grade.properties org.gradle.jvmargs-XX:MaxHeapSize\2048m -Xmx2048m步骤 4通过增大可用内存解决「:app:transformClassesForDexForDebug」异常在 gradle.build 中指定 javaMaxHeapSize android {...dexOptions {javaMaxHeapSize 4g //specify the heap size for the dex process} }4、强制修改版本 这个办法在网上见的多大致就是在模块的 gradle 文件里面强制使用某一个版本的 jar 包这样就不会下载两个 jar 包了。 我是发现没什么用网上有的说放根目录有的说放 android 里面我不确定放哪啊我是都试了没效果可能运行项目的姿势不对喽 ps. 后续更新放在 gradle 中最外层就可以亲测有用。 在不清楚在那里引入的库的话切换到project目录看看哪个重复了统一下版本很有用 android{//....//放在这 } //根节点 configurations.all {//resolutionStrategy.force com.squareup.okhttp3:okhttp:3.10.0resolutionStrategy.eachDependency { DependencyResolveDetails details -def requested details.requestedif (requested.group com.google.android.exoplayer) {if (!requested.name.startsWith(multidex)) {details.useVersion 2.9.3}}} }还有人说可以在工程的 gradle 中强制设置我是发现也是没什么用提一下。 allprojects {...configurations.all {resolutionStrategy.force com.squareup.okhttp3:okhttp:3.10.0} }5、自行删除 这个方法我觉得可以解决特定问题但局限性很大。 我们知道别人的依赖我们是无法修改的但是自己本地 lib 是可以删除如果是和我们本地的 jar 包冲突的话我们删掉自己的就行了。 这个解决办法有局限性一个是要求冲突的 jar 包在我们本地可以操作另一个如果我们用的版本较高而别人的版本较低怎么办那岂不是凉凉此为下策 6、使用 compileOnly compileOnly 的形式引入库会只在编译时有效不参与打包它是解决一个什么问题呢其实就是多个模块中会冲突的库让其中一个 implementation 其他使用 compileOnly最后出来能够共用一个库当然要有一个。 那这个办法和解决我们的问题有什么关联呢其实这个办法和第二个方法类似目的就在打包引入的库的时候将 implementation 改为 compileOnly让引入的库只在编译时有效不会参与打包这样就能够打包了。 这个问题也很明显我要是能找到冲突的库让它单独 compileOnly 固然能解决问题可是事与愿违我们冲突的库一般都是在别人的库里面如果直接将所有内容以 compileOnly 形式导入我们百分百要用到这个库里面的东西啊一用就会闪退最终只是自欺欺人罢了 ps. 后续更新年少轻狂啊作为SDK提供给别人用得到啊 好了上面就是解决依赖冲突的几种办法了推荐第一个其他有些鸡肋。 依赖分析 这里将一下我们如何定位冲突实际上编译的时候就会报错了如下 Execution failed for task :app_vs:checkDebugDuplicateClasses.Duplicate class okhttp3.Address found in modules jetified-okhttp-3.10.0.jar (com.squareup.okhttp3:okhttp:3.10.0) and jetified-okhttp-3.8.1.jar (okhttp-3.8.1.jar)这里就是提示我 jetified-okhttp-3.10.0.jar 和 jetified-okhttp-3.8.1.jar 有冲突了不过这还是比较简单的信息下面介绍使用 gradlew 分析。 使用 gradlew 分析 查看依赖关系需要用到的命令为 gradlew :[module_name]:dependencies 如需分析工程中app这个module的依赖关系行命令则为 gradlew :app:dependencies --configuration releaseRuntimeClasspath 从下面的关系树可以看到各个依赖之间的关系以及依赖版本号合并后的最终版本号 --- com.android.support:support-core-utils:28.0.0 (*) | | | --- com.android.support:customview:28.0.0 | | | | --- com.android.support:support-annotations:28.0.0 | | | | \--- com.android.support:support-compat:28.0.0 (*) | | | --- com.android.support:viewpager:28.0.0 | | | | --- com.android.support:support-annotations:28.0.0 | | | | --- com.android.support:support-compat:28.0.0 (*) | | | | \--- com.android.support:customview:28.0.0 (*) | | | --- com.android.support:coordinatorlayout:28.0.0如果你不想在命令终端中查看而是想把依赖关系输出到文件中则可以使用以下命令gradlew :[module_name]:dependencies [output_file] 例如将app module的依赖关系输出到dependence.txt文件中gradlew :app:dependencies dependence.txt 简单小结 实际上这些内容应该写在最前面的但是我觉得解决问题优先实际上上面得内容看起来还是有点摸不着头脑的虽然可能能解决你的问题。 依赖 上面我们通过 gradlew 命令能够看到实际上我们项目的依赖是一种树的关系每个模块、每个库都会直接或间接地引用别的库最后汇总到我们地安卓项目中。 点开顶部地 Project Structure 选择 Dependencies 我们可以看到自己地一些库 而选择 Project 目录后我们可以看到所有的库aar/jar 为什么会冲突实际上就是这个汇总问题当所有库都放一起了加入有两个版本不一致的库岂不是有两个jar(aar) 包所以有了我们上面的解决办法去掉一个或者全去掉。 冲突 我们一直讲的冲突却没有说到为何冲突实际上冲突有下面这些形式 项目自己引用的 jar 包重复 项目中 jar 包和第三方库module、远程库、aar、jar冲突 第三方库之间的冲突 如果是我们自己的很好办可以自己随便操作删除或修改如果是第三方的就改不了只能在引入库的时候排除掉。如果功能都用不到删除了也没问题 结语 以上就是解决依赖冲突的一些办法这里有两点内容希望读者再了解了解说不定对依赖有更深的理解 Gradle 导入方式implementation、api、compileOnly等 混淆
http://www.w-s-a.com/news/657409/

相关文章:

  • 中山市有什么网站推广wordpress轻应用主机
  • 洗头竖鞋带名片改良授权做网站不贵整个世界
  • 设计电子商务网站建设方案微信如何开发自己的小程序
  • 建设网站公司哪里好相关的热搜问题解决方案做网站要看什么书
  • 网站建设重要性黄岐建网站
  • 做网站电销《电子商务网站建设》精品课
  • 地方商城网站海外网站推广方法
  • 乐山 网站建设安阳给商家做网站推广
  • 网站空间一般多大邢台网站建设有哪些
  • h5网站开发工具有哪些wordpress清空post表
  • 公司开网站干嘛怎么制作一个免费的网站模板
  • 群晖wordpress搭建网站网站建设及管理
  • 中山企业网站建设公司抖音代运营合作模式
  • 南通营销网站开发做网站页面多少钱
  • 桂林生活网官方网站云主机和云电脑的区别
  • 内部网络网站怎么做vue做单页面网站
  • 如何建立网站教程wordpress粘帖图片
  • 广东网站备案要多久网站开发 pdf 文字版
  • 学校网站方案帮别人做钓鱼网站吗
  • 如何加强网站建设和信息宣传wordpress 搜索提示
  • 灰色网站怎么做php yaf 网站开发框架
  • 浙江建设网站首页提供做网站公司有哪些
  • 建公司网站报价公司seo是什么级别
  • 可信赖的武进网站建设中山网站建设方案
  • 网站设计方面有什么公司运动鞋网站建设目的
  • 学校门户网站流程建设方案找人做网站 多少钱
  • 网站域名更换相应内容网站策划 要求
  • 百盛联合建设集团网站开发网站的步骤
  • php做网站评价网络公司经营范围可以加技
  • 网站积分的作用保定专业网站建设