博主留言
欢迎来到本博客,写的都是解决一些不太好搜到的问题,希望能帮到各位hhhh!
对内容有疑问的或者是FF14玩家的甚至可以联系俺价格好友,联系方式都在侧边栏了!
最近应用宝ysdk更新到1.5.9了,没有了eclipse的接入方式,只能自己解压arr接了。但是导入ysdk的jar包后打包时会报错,报错如下:
1 | UNEXPECTED TOP-LEVEL EXCEPTION: |
搜了一下,是说dx.jar或者jdk版本和编译jar包的版本对不上,然后需要去查看ysdk.jar包里的编译版本,位置是jar包里的META-INF->MANIFEST.MF
内容如下:
1 | Manifest-Version: 1.0 |
1.8.0_91是jdk版本。再在ysdk demo里的build.grandle里看到buildToolsVersion = “29.0.2”
我寻思我电脑上jdk只有1.8的啊,那只能是dx.jar的问题了,然后去下载了29.0.2版本的build-tools,需要放到sdk/build-tools/内,
然后在eclipse项目中的project.properties里添加
1 | sdk.buildtools=29.0.2 |
处理好之前的问题后,在eclipse打包的时候又报如下错
1 | [2020-03-25 11:00:44 - Dex Loader] Failed to load D:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-10\lib\dx.jar |
后来发现其实这个错只会在eclipse上打包会报,用ant直接打包是没问题的。
但是毕竟还是要在eclipse上调试,找了很久最后终于在stackflow上找到了解决方案,把以前用的build-tools版本内的dx.jar下的com.android.dx.command.DxConsole.class 复制到新版本的dx.jar包下即可(可以用winrar同时打开新旧版本的dx.jar,然后把DxConsole用鼠标拖过去)。
新版本的 YSDk 还使用到了 androix 的一些 supprt 依赖: androidx.core.content.FileProvider 和 androidx.localbroadcastmanager.content.LocalBroadcastManager。需要引入androidx的jar包,可以去github这位大哥那边下载,大哥github链接:https://github.com/dandar3,需要引入androidx.core.jar和 androidx.localbroadcastmanager.jar
这位大哥还有很多google sdk需要用到的库,需要接入google sdk的可以去他那找,希望能帮到其他人
一般各大手机厂商应用商店,应用宝,九游,豌豆荚之类的app都是按下面这种方式跳转的
1 | //appPkg是游戏包名 ,marketPkg是应用商店包名 |
1 | String url = "taptap://taptap.com/app?app_id=xxxxx&source=outer|update"; |
1 | //gameId可以去4399游戏盒里搜你的游戏然后分享链接,链接里的数字就是gameId,package填游戏包名 |
1 | //id通过去bilibili游戏界面分享链接获得 |
1 | ********************** INTENT START ************************** |
如果生命周期都配置完好,appid填写正确,能调到onActivityResult,但是依然无法收到成功回调
为保持游戏内场景在各个终端版本具备良好兼容性和一致体验,本次接入X5内核(TBS),需要对so库做调整(仅接YSDK的应用宝渠道包需要)
原因:https://x5.tencent.com/tbs/technical.html#/detail/sdk/1/34cf1488-7dc2-41ca-a77f-0014112bcab7
处理方式:打包时只保留armeabi文件夹以及对应运行库so文件,删掉其它的所有jni支持库的文件夹如(arm64 X86 X86_64 mips等)
如只有armeab_v7a则把YSDK JniLib 中armeabi目录下对应so库copy到armeab_v7a文件夹内。
但是我发现加入ndk{abiFilter “armeabi”}build不过,那就只能用armeabi-v7a了,做法如下:在build.gradle中的android{defaultConfig中}添加
1 | ndk{abiFilters "armeabi-v7a"} |
在sourceSets.main{}中添加(也可以是别的,根据项目配置而定)
1 | jniLibs.srcDir "libs" |
1 | android { |
并且在libs下创建armeabi-v7a文件夹(如果没有的话),并将YSDK_Android_x.x.x_xxxx.aar里的armeabi文件夹下的.so文件拷贝放进去,然后项目rebuild就行啦~折腾了我挺久,为后人提醒