CodenameOne - 使用 android.buildToolsVersion=27 构建时,Android 应用程序无法启动

Posted

技术标签:

【中文标题】CodenameOne - 使用 android.buildToolsVersion=27 构建时,Android 应用程序无法启动【英文标题】:CodenameOne - Android app fails to start when building with android.buildToolsVersion=27 【发布时间】:2018-09-05 09:30:31 【问题描述】:

我正在使用 gcm,但由于此错误,应用程序无法启动:

androidRuntime: java.lang.IllegalAccessError: Method 'void android.support.v4.content.ContextCompat.()' 无法访问 类“com.google.android.gms.iid.zzd”(声明 'com.google.android.gms.iid.zzd' 出现在 /data/app/net.segoia.opengroups.mobile-1/base.apk:classes2.dex)

这是由这一行引起的:

InstanceID instanceID = InstanceID.getInstance(this);

问题是在为 api level 27 构建时,对 android v4 的支持被放弃了。

【问题讨论】:

【参考方案1】:

解决问题的方法是添加这两个构建提示:

android.supportV4=true
android.supportv4Dep=compile 'com.android.support:support-v4:23.+'

这需要一段时间才能弄清楚,特别是因为 android.supportV4Dep 甚至没有文档记录,单独的 android.supportV4 是不够的。我从另一个 *** 对另一个问题的回答中了解了 android.supportV4Dep,所以我想我会在这里记录一下。

【讨论】:

以上是关于CodenameOne - 使用 android.buildToolsVersion=27 构建时,Android 应用程序无法启动的主要内容,如果未能解决你的问题,请参考以下文章

CodenameOne - 使用android.buildToolsVersion = 27进行构建时,Android应用程序无法启动

CodenameOne 与 Eclipse:发送 Android 构建失败

如何将 gradle 库依赖项添加到 codenameone 项目

代号一 - test-for-ios-device 和 test-for-android-device 蚂蚁任务

使用 Codenameone 显示推送通知

代号一。 IOS 拦截 URL 问题。