当前位置:首页 » 编程软件 » 编译后文件冲突

编译后文件冲突

发布时间: 2023-06-17 02:29:36

Ⅰ Android 集成三方SDK编译时classes.jar文件冲突

这几天的任务是将mapbox的工程合到程序中去,但是合并过程却出现了问题
合并方法:在app的build.gradle中添加
dependencies {
compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:0.7.4@aar'){
transitive=true
}
}
但是合并后会报错:
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
这个错误是由于jar包冲突,解决方法如下:
方法一:找到冲突包,将冲突包删除,一般冲突包为'com.android.support:appcompat-v7:22.2.0'或者'com.android.support:support-v4:22.2.0',但是我删除冲突包后,依然报错,于是使用方法二
方法二:因为我的冲突包是'com.android.support:support-v4:22.2.0',所以找到项目根目录-build-intermediates-dex-cache-cache.xml文件,将其中跟v4有关的全部删除,然后clean project,然后将compile改为provided如下:
dependencies {
compile 'com.vividsolutions:jts:1.13'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.jakewharton:disklrucache:2.0.2'
provided 'com.android.support:support-v4:21.0.0'
}

Ⅱ 关于VC++6.0编译静态库再次调用的时候符号冲突

把你的静态库函数名个性化一点。

Ⅲ iOS-集成多个SDK内部文件重复冲突解决

最近使用Hbuilder集成一个项目,集成了很多sdk,发现有两个sdk都是用了Masonry第三方库布局,然后编译报错,关键字: plicate symbol ,出现这个就表示有重复文件了,我们需要把其中的一个sdk文件中生成的重复的.o文件一一删除即可,如下则为相关位置,我将把Masonry.framework的相关重复文件一一移除合并解决冲突问题。

步骤如下:

1.打开终端cd到所要修改的sdk所载文件目录(最好备份一个出来,改完再替换)

2.查看静态库文件包含的架构:

命令: lipo -info  xxxx.a 

主要看看总共有哪些架构有冲突,后面需要一一从相关架构移除。如下

根据结果可以看出包含armv7 i386 x86_64  arm64 这几个库,冲突文件必须从必须从每个架构的库里面相应删除才行,其中x86_64为模拟器的架构,如果不需要模拟器调试,嫌麻烦x86_64可以不管。具体指令集相关可以看这篇文章: https://www.jianshu.com/p/5d1ce5d3d8d6

3.分离出相应架构的库:

命令: lipo -thin armv7 XYRiskAssessment-iOS-1.0.0.a -output armv7.a

例:lipo -thin armv7 Masonry -output Masonry-armv7

然后我们就可以看到我们的sdk目录下会多一个Masonry-armv7的库,如下:

同样的方法我们可以分离出i386  x86_64   arm64 文件分离完成后如下:

4.查看库中所包含的文件列表

命令为: ar -t  xxx.a

例: ar -t  Masonry-armv7

5.如果不清楚两个sdk都有哪些文件重复,可以按照以上步骤,查看下另一个重复的sdk都包含哪些文件,如下所示和Masonry.framework重复的DCUniVideoPublic.framework分离出armv7架构的文件列表,其实也可以在xcode编译重复信息里面找到相关.o文件,看个人喜好。

6.接着我们就要从每个架构文件中,删除相关的冲突.o文件

命令::ar -d -sv XXXXX-armv7.a  XXXX.o

例:

ar -d -sv Masonry-armv7 MASCompositeConstraint.o

ar -d -sv Masonry-armv7 MASViewConstraint.o

7.最后一步:把armv7 i386  x86_64   arm64 所有架构的重复文件按照上面方法删除完成后。我们要把这几个架构合并到原来的库里面

和并静态库的命令:

lipo -create XXXXX-armv7.a XXXXX-armv7s.a (加上所有架构的编译库) -output XXXXX-NOFfmpeg.a

例:

lipo -create Masonry-x86_64 Masonry-armv7 Masonry-i386 Masonry-arm64 -output Masonry

最后将这个新生成的静态库文件替换掉之前的,发现冲突解决。

注意:当把Masonry相关冲突.o文件移除后,这个移除合并后的兼容版本是不能单独拿去使用的,单独使用以上移除的.o文件会出现丢失的编译错误,因为你已经移除了。

觉得有帮助留个赞再走呗 ~

Ⅳ vs2010 如何编译多个cpp文件,在一个工程里面多建几个cpp文件,调试的时候提示main函数 冲突

Visual Studio里面C++项目里只能有一个CPP文件有main函数,有多个当然会冲突。需要把其他的变成注释,只留下你要运行的那个。

热点内容
ftp服务器ip就是电脑ip吗 发布:2025-02-08 21:51:42 浏览:475
数据库5 发布:2025-02-08 21:43:17 浏览:51
安卓安装证书没有怎么办 发布:2025-02-08 21:32:10 浏览:358
外交官拉杆箱怎么设密码 发布:2025-02-08 21:21:55 浏览:797
vivo手机z系列哪个配置性价比最高 发布:2025-02-08 21:17:43 浏览:10
什么是白标和服务器 发布:2025-02-08 21:15:50 浏览:481
租完服务器怎么搭建ip 发布:2025-02-08 21:11:47 浏览:394
c语言赋值后 发布:2025-02-08 21:08:40 浏览:757
dosphp 发布:2025-02-08 21:01:27 浏览:703
sm3杂凑算法 发布:2025-02-08 20:55:00 浏览:286