安卓开发填坑

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之后也解决了。