繁体   English   中英

提交Android构建后Flurry CN1Lib错误

[英]Flurry CN1Lib error after submitting Android build

我收到错误“由:org.gradle.process.internal.ExecException: Process 'command '/home/ec2-user/jdk1.8.0_45/bin/java''提交时以非零退出值 2 '完成一个 Android 构建请求。

我怀疑它与Flurry CN1Lib 有关

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':transformClassesWithDexForRelease'.

Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.android.dx.command.Main with arguments {--dex --verbose --force-jumbo --num-threads=4 --output 

需要更新flurry cn1lib 以使用较新的Android API 级别28 作为我们当前的默认位置。 从长远来看,这是正确的做法。

作为短期补丁,您可以在构建提示中定义: android.playServicesVersion=8.3.0以解决此问题。 请注意,这可能会影响您的应用程序的功能,例如位置服务支持等。

好吧,我终于设法解决了这个问题。 我只对让分析起作用感兴趣,但我相信广告也应该起作用。 这是我如何做到的:

  1. 从 GitHub 上克隆/下载当前的 CN1Flurry 项目https://github.com/chen-fishbein/flurry-codenameone 这使我能够访问源文件并将它们用作参考。
  2. 将项目按原样导入我的 Netbeans 带来了一些“解决项目”问题,所以我继续创建一个与 CN1Flurry 具有相似名称和包/类结构的新项目,然后将旧项目中的类复制到新项目中。
  3. 打开FlurryNative类并删除onPageView()setLogEvents()setCrashReportingEnabled()因为当前 Flurry Android SDK 不支持这些。 完成后,右键单击FlurryNative类并选择“生FlurryNative机访问”。 这将允许您在项目的“本机”文件夹中为 Android、iOS、Windows 等创建本机实现。

  4. Chen 的项目使用 Flurry SDK 的 5.3.0 版,但推荐的 SDK 版本是 12.1.0 版。 从您的 Flurry 门户的“管理”部分下下载最新的 aar 文件,并将它们复制到“android”文件夹中。 对我来说,这些是flurryAds_12.1.0.aarflurryAnalytics_12.1.0.aar

  5. 切换到 Netbeans 项目的Files视图并打开FlurryNativeImpl类。 您可以从 Chen 的项目中复制大部分实现,唯一需要更改的是initFlurry()方法为 - new FlurryAgent.Builder().build(AndroidNativeUtil.getActivity(), apiKey); Flurry 在新 SDK 中的初始化方式不同 - https://developer.yahoo.com/flurry/docs/integrateflurry/android/

  6. 就是这样。 切换回“项目”视图,然后清理并构建您的 CN1Flurry 项目以生成 .cn1lib 文件,然后您可以将其添加到“libs”文件夹中的 UI 项目中。 记得刷新 cn1Libs 文件。

最后,将以下构建提示添加到您的 UI 项目中:

android.min_sdk_version=16
android.multidex=true
android.xapplication=\<activity android:name="com.flurry.android.FlurryFullscreenTakeoverActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"> \</activity>

Chen 建议添加很多其他构建提示,但我没有发现它们对我的案例有用。

仍在学习 GitHub 工作原理; 一旦我感到舒服,就会提出拉取请求。 同时,您可以在此处获取整个项目 - https://drive.google.com/open?id=1GGygaVelmMhMUX9Deik9W72hXkw_detG

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM