gradle遇到的一些坑

用 android studio 用的爽了,现在让我去用 eclipse 简直就是杀人!

但是毕竟因为用的人还是少数,所以项目中遇到的一些问题解决方案并不是很多,甚至没有。打算自己的一些经验记录下来。

--------------------------------------------------------------------------------------------------------------

一、关于打包 jar ,官方宣称 android studio 是不支持打包 jar 的,所以之前对接 unity 的时候遇到的问题就是 android studio 中写好的项目然后得转移到eclipse中打包(有点傻),后来才发现 app\build\intermediates\classes 目录下都是已经编译好的字节码文件,所以……直接命令

jar -cvf xxx.jar *

不就好了吗?然后需要注意的是 android studio 将 R类 的字节码文件也编译了进去,在对接 unity 的时候会出现因 android studio 跟 unity 生成的资源 id 不一致导致的 bug,故可将这些 R 相关的删除,这样就ok了。说到资源的问题,

二、unity 与 android 对接中导致资源错乱的问题的解决办法(巨大的坑,虽说与 gradle 无关,但都是我实际中一步步遇到的问题,还是写在一起把)

前面已经说了,因为我们在使用 R.id.XXX 的时候其实是 ADT 自动给我们生成的一个 id ,我们引用这个 id 系统帮我们找到这个资源。所以当与 unity 对接时,官方推荐的方式是将 res 文件夹一起放置到 android 路径中,也就是说 unity 负责将资源重新分配 id,这样我们的静态代码中的 id 引用的可能就不是我们所需要的那个资源了,所以解决办法是不能使用静态的 R.id.XXX 获取资源,我们可以使用

// 以前的写法
String desc = res.getString(R.id.description);

// 现在的写法
String desc = res.getString(res.getIdentifier("description", "string", "com.mycompany.MyApp"));

这样就是动态的获取相应的资源了,ok,问题解决。

三、坑爹的 unity 还是问题不断,例如我的项目中某个自定义的 view 中的 ondraw 运行不对了在对接之后,死活找不出原因,这都是 unity 布下的坑,所以想为毛我要让 unity 负责打包呢?后来自己在打包的时候意外发现了 build setting 中有 google android project 的选项,没想到 unity 也可以直接 export android 的项目,这样的话也就是说可以将自己的项目作为 lib 由 unity 导出的项目引用或者是在我的 android 项目中引用 unity 的 lib,当然在我的尝试中后者成功的打包运行了,也是我现在一直使用的方式,也就是可以将 unity 导出的项目作为 library 项目导入,然后在自己的 android 项目中引用这个 library 项目,具体怎么操作,网上有很多,自行 google ,但有一个问题就是以 library 的方式可能会有 :app:dexDebug 的错,也就是打包 jar 的时候出了问题,后来发现是因为项目中和 library 中同时都而且不得不引用了同一个 jar (unity提供的用于 android 相关的工具),所以解决办法就是屏蔽其中的某一个 jar,

configurations {
    all*.exclude jar: ‘libs/classes.jar‘
}

在自己的 android 项目中的 build.gradle 中加入这一段应该就可以解决了。(不熟悉 gradle 的语法这对我来说是个大坑)

四、建议的 unity android 打包方式

如果涉及到很多资源由其建议!而且可以在 android 这边进行 debug,前面说的 unity 导出 android 的项目后,将其中的 assests 直接复制到 src/main 下(android studio), 再将 unity 项目中引用的 jar 也放置到 assests 的 libs 中,然后在 main 中建立一个 jniLibs 文件夹,将 unity 导出的项目中 libs/armeabi-X 整个文件夹 copy 进去。这样就没问题了,然后该怎么对接跟其他的一样。

五、unity 到处都是坑,标题应该改为 unity 遇到的一些坑才是,哈哈哈哈

时间: 2024-10-25 21:02:29

gradle遇到的一些坑的相关文章

Android 开发必备知识:我和 Gradle 有个约会

腾讯Bugly特约作者:霍丙乾 0.讲个故事 0.1 Ant,我还真以为你是只蚂蚁 真正开始近距离接触编程其实是在2012年,年底的时候带我的大哥说,咱们这个 app 发布的时候手动构建耗时太久,研究一下 ant 脚本吧. 那个时候连 HashMap 都不知道是啥,可想开发经验几乎为零,一个小小的 ant 脚本看得我真是深深地感受到了这个世界充满的恶意.好在后来硬着头皮搞明白了什么 target 之类的鬼东西,不然就没有然后了. 0.2 Maven,你们真的会读这个单词么 Maven /`mei

【Android】Android Studio 进行代码混淆,打包release APK

整了一天,感觉坑挺多. 1. 选择如图中的选项Android Studio进行签名打包: 2. 填写APP对应的信息:(最好用个文本记下来放在项目中同步给Team) - Key store path: 如果是新APP则创建,如果已经有了选择就行: - Key store password: ******* - Key alias(别名): 自定义 - 如果是新创建的文件需要选择时间,整个25年足够用了,公司信息填上就OK - 下一步后选择release就开始打包 3. Android Studi

从Eclipse迁移到Android Studio(一)

Google正式推出了Android Studio 1.0,Android默认的开发工具也由Eclipse变成了intellij,对Eclipse的支持肯定会越来越少了,对于Android开发者来说,是时候要换个工具了. 对比Eclipse,Studio更加的稳定,功能更丰富,更像是一个Android的专用开发工具.至于性能,和Eclipse差不多,在配置高的电脑上,要比Eclipse流畅. 第一次接触Android Studio,首先要了解工程结构.Studio每个窗口只能打开一个projec

基于springboot+kotlin+gradle构建的框架的坑

项目采用以上技术构建,于是本人就尝试构建自己的脚手架,然后遇到一大推问题. 使用的是springinitials构建,IDE是:IDEA 现在也是知其然不知其所以然,但是先记录下来修改过程,以后等知识水平补充上来的话就再将其中的一些原理解释一下: 第一坑: 构建起框架后, gradle 出现导入问题:load timeout 解决方法:在 build.gradle 如下图位置添加 maven 依赖: maven { url("https://plugins.gradle.org/m2/"

Android Studio 首坑 Gradle sync failed: Cause: error in opening zip file 的错误

前言 本文章主要通过介绍如果Android Studio安装时出现包错误的解决方式及思路,授予人鱼不如授予人渔. 环境: 操作系统:Windows 7 SP1 安卓编译环境:Android studio 2.3.1 JDK:jdk1.8.0_102 错误: Gradle sync failed: Cause: error in opening zip file  Consult IDE log for more details (Help | Show Log) 经历: 1.尝试用是 Sync

gradle的一个坑

gradle引入jar的方式很简单,比如引入dubbo,只要加一行即可: compile('com.alibaba:dubbo:2.4.10') 有时候我们希望排除依赖,可以这样写: compile('com.alibaba:dubbo:2.4.10'){exclude groupId:'org.springframework'} 但是当你以这样的方式发布一个jar包到maven仓库的时候,就要小心了,依赖你jar包的工程仍然会引入已经被你exclude的jar包. 查看生成的maven pom

android开发里跳过的坑-AS导入NDK工程提示错误 No such property: sdkHandler for class: com.android.build.gradle.LibraryPlugin

接到一个NDK工程需要调试,导入后发现总是提示错误 Error:(37, 1) A problem occurred evaluating project ':libuvccamera'.> No such property: sdkHandler for class: com.android.build.gradle.LibraryPlugin 百度上各种说法,有说要降低gadle版本,有说要在环境变量里配置ANDROID_NDK的路径,试验了都不行,最后参考别人NDK gradle文件修改如

Android studio 3.0的Gradle的坑

Event log里面显示的是Gradle syn failed logcat里面显示的有6个错误 Error:resource style/Base.V26.Widget.Design.AppBarLayout (aka com.example.reshangkeji.ydc:style/Base.V26.Widget.Design.AppBarLayout) not found.Error:failed linking references. Error:java.util.concurre

jenkins构建基于gradle的springboot项目CI采坑(采用jar方式部署)

试了一堆插件,最后用的还是 publish over SSH jenkins基本配置不多说了,就是配置一下git仓储,配置一下gradle执行命令 clean bootRepackage 之后执行Send build artifacts over SSH 提前配置好对应的服务器 Send build artifacts over SSH 麻烦的是执行restart.sh脚本,总是各种奇葩问题,最终结果如下 #/bin/bash pid=`ps -ef | grep spp.jar | grep