No1:
Unity2017.1版本导出的android工程放到Android Studio上跑起来非常卡,Unity2017.3或4版本导出就没问题。
对比后发现gradle文件有差异,特此标注
1)gradle版本改为2.3.0
2)sdk版本改为27或以下
3)android块中加这句
aaptOptions {
noCompress '.unity3d', '.ress', '.resource', '.obb'
}
资源压缩的问题
No2:
Unity导出的android工程里暴露了唯一的Activity:UnityPlayerActivity,其实就是unity-class.jar包里的UnityPlayerActivity。
我们可以把暴露的Java类删除,继承unity-class.jar包里的UnityPlayerActivity,写一个新的类,这样的话,只要这个类实现了新的接口。Unity那边就可以通过反射调用相同的接口,从而实现了Android与Unity之间交互。
No3:
今天一天都在找权限问题,明明在清单文件里注册了权限,结果打成apk后,清单文件里权限就没了,找了整整一天的原因,结果是接的sdk里隐藏了这句
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
sdk是别人写的,让作者改吧
No4:
O7合并代码逻辑,每新建一个分支,提交代码后,都要合并到master主分支,原因是公共库给其他工程用的时候,不需要找最新的版本,只需要下载master分支就是最新的了。
No5:
打包提示:Error:java.lang.RuntimeException: Some file crunching failed, see logs for details
原因:
1.构建Gradle的时候,Gradle会去检查一下是否修改过文件的后缀名;
2.一般大多数是出现在图片上,.jpg修改成了.png就会出现这个问题;
3.9patch图片也可能出现这个问题。
解决方法:
gradle文件android块中增加
aaptOptions { cruncherEnabled = false useNewCruncher = false }
No5:
错误:uses-sdk:minSdkVersion 1 cannot be smaller than version 4 declared in library
原因:有类库没有配置最低兼容版本
解决:
defaultConfig { minSdkVersion 10 targetSdkVersion 19 }
增加即可
No6:
aar里面是不能把其他aar打进去的,解决方法只有
1.多引用一次aar
2.把aar解压,分文件夹合成一个aar