安卓开发填坑
1.接入Facebook登录和分析sdk时候,编译打包没问题,运行app就闪退,log显示报错java.lang.NoSuchMethodError:
at com.facebook.FacebookSdk.<clinit>
这种情况,应该是对FacebookSdk的调用引发了这个错误,修复方式为
app下build.gradle的android 下添加
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
2.Sync时警告:build.gradle: API 'variant.getMergeAssets()' is obsolete and has been replaced with 'variant.getMergeAssetsProvider()'. 类似这种方法太久被取代了的警告,和提示ABIs [arm64-v8a,armeabi-v7a,armeabi] set by ‘android.injected.build.abi’ gradle flag contained ‘ARMEABI, ARM64_V8A’ not targeted by this project. 需要在gradle.properties中添加
android.useDeprecatedNdk=true
3.编译时候显示jvm内存不够,需要在gradle.properties中添加
org.gradle.jvmargs=-Xmx4096M
同样的还有提示添加 useAndroidX 等等的。
android.useAndroidX=true 等等
4.Facebooksdk接入编译时候报错:
[com.facebook.android:audience-network-sdk:6.8.0] /Users/lvjiahui/.gradle/caches/transforms-2/files-2.1/963750c1949dbbdc2918f7adb25d5918/AndroidManifest.xml:12:9-55 Error:
Missing 'package' key attribute on element package at [com.facebook.android:audience-network-sdk:6.8.0] AndroidManifest.xml:12:9-55
类似这种是gradle版本太低,可在网上搜索下最合适的版本
5.编译cocos2djs的时候,如果选择的gradle版本不对应,
you might get a "no rule to make target cocos2djs
" error。
make:*** No rule to make target `cocos2djs'. Stop.
参看官方文档,找到引擎版本对应支持的gradle
版本。
6.Android Studio: Plugin with id 'com.android.feature' not found
低gradle版本才支持,太高版本已经移除。对creator来说,引擎2.4.7之前都属于低版本gradle,Android Gradle 版本为 4.10.x,对应的 Gradle Tool 版本为 3.x
7。Gradle 太低,还遇到了 添加了
implementation 'com.adjust.sdk:adjust-android:4.33.0'
但是代码中引用对应接口还无法解析,编辑器爆红的问题,适当升级gradle之后也解决了。