提交 Android build 后出现 Flurry CN1Lib 错误
Flurry CN1Lib error after submitting Android build
我收到错误“原因:org.gradle.process.internal.ExecException:进程 'command '/home/ec2-user/jdk1.8.0_45/bin/java” “在提交 Android 构建请求时以非零退出值 2 完成。
我怀疑它与 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
在构建提示中解决此问题。请注意,这可能会影响您的应用程序的功能,例如定位服务支持等。
好吧,我终于设法解决了这个问题。我只对让分析位起作用感兴趣,但我相信广告也应该起作用。这是我的做法:
- Cloned/downloaded 来自 GitHub 的当前 CN1Flurry 项目 https://github.com/chen-fishbein/flurry-codenameone。这使我能够访问源文件并将其用作参考。
- 按原样将项目导入我的 Netbeans 会带来一些 'resolve project' 问题,所以我继续创建一个名称和 package/class 结构与 CN1Flurry 相似的新项目,然后复制 classes 从旧项目到新项目。
打开 FlurryNative
class 并删除 onPageView()
、setLogEvents()
和 setCrashReportingEnabled()
,因为当前不支持这些乱舞 Android SDK。完成后,右键单击 FlurryNative
class 并选择 'Generate Native Access'。这将允许您在项目的 'native' 文件夹中为 Android、iOS、Windows 等创建本机实现。
Chen的项目使用Flurry SDKs 5.3.0版本,推荐SDK版本为12.1.0。从您的 Flurry 门户网站的 'Admin' 部分下载最新的 aar 文件,并将它们复制到 'android' 文件夹。对我来说,这些是 flurryAds_12.1.0.aar
和 flurryAnalytics_12.1.0.aar
切换到您的 Netbeans 项目的 Files
视图并打开 FlurryNativeImpl
class。您可以从 Chen 的项目中复制大部分实现,您唯一需要更改的是 initFlurry()
方法 - new FlurryAgent.Builder().build(AndroidNativeUtil.getActivity(), apiKey);
Flurry 在新 SDK 中的初始化方式不同 - https://developer.yahoo.com/flurry/docs/integrateflurry/android/
就是这样。切换回 'Projects' 视图,然后清理并构建您的 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
我收到错误“原因:org.gradle.process.internal.ExecException:进程 'command '/home/ec2-user/jdk1.8.0_45/bin/java” “在提交 Android 构建请求时以非零退出值 2 完成。
我怀疑它与 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
在构建提示中解决此问题。请注意,这可能会影响您的应用程序的功能,例如定位服务支持等。
好吧,我终于设法解决了这个问题。我只对让分析位起作用感兴趣,但我相信广告也应该起作用。这是我的做法:
- Cloned/downloaded 来自 GitHub 的当前 CN1Flurry 项目 https://github.com/chen-fishbein/flurry-codenameone。这使我能够访问源文件并将其用作参考。
- 按原样将项目导入我的 Netbeans 会带来一些 'resolve project' 问题,所以我继续创建一个名称和 package/class 结构与 CN1Flurry 相似的新项目,然后复制 classes 从旧项目到新项目。
打开
FlurryNative
class 并删除onPageView()
、setLogEvents()
和setCrashReportingEnabled()
,因为当前不支持这些乱舞 Android SDK。完成后,右键单击FlurryNative
class 并选择 'Generate Native Access'。这将允许您在项目的 'native' 文件夹中为 Android、iOS、Windows 等创建本机实现。Chen的项目使用Flurry SDKs 5.3.0版本,推荐SDK版本为12.1.0。从您的 Flurry 门户网站的 'Admin' 部分下载最新的 aar 文件,并将它们复制到 'android' 文件夹。对我来说,这些是
flurryAds_12.1.0.aar
和flurryAnalytics_12.1.0.aar
切换到您的 Netbeans 项目的
Files
视图并打开FlurryNativeImpl
class。您可以从 Chen 的项目中复制大部分实现,您唯一需要更改的是initFlurry()
方法 -new FlurryAgent.Builder().build(AndroidNativeUtil.getActivity(), apiKey);
Flurry 在新 SDK 中的初始化方式不同 - https://developer.yahoo.com/flurry/docs/integrateflurry/android/就是这样。切换回 'Projects' 视图,然后清理并构建您的 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