【发布时间】:2018-03-27 06:36:30
【问题描述】:
所以我正在尝试创建 Air Native 扩展,它将在后台从服务器获取数据,然后显示通知。我已经在普通的 android 应用程序上尝试过它并且它有效。
但是当我尝试将其设置为 ANE 时它不起作用,因为不知何故代码找不到 volley(其他都可以,包括后台服务)
Logcat 结果:
--------- beginning of crash
03-27 10:46:23.640 3680 3680 E AndroidRuntime: FATAL EXCEPTION: main
03-27 10:46:23.640 3680 3680 E AndroidRuntime: Process: air.bg, PID: 3680
03-27 10:46:23.640 3680 3680 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/volley/toolbox/Volley;
03-27 10:46:23.640 3680 3680 E AndroidRuntime: at com.company.backgroundprocess.JobSchedulerService.onStartJob(JobSchedulerService.java:54)
这里是 JobScheduler.java:
@Override
public boolean onStartJob(JobParameters jobParameters) {
parameters = jobParameters;
settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
unixTimeLastNotificationOnDevice = settings.getLong("lastNotificationTime", System.currentTimeMillis() / 1000);
//Line 54 bellow
queue = Volley.newRequestQueue(getApplicationContext());
mJobHandler.sendMessage(Message.obtain(mJobHandler, 1, jobParameters));
return true;
}
那条线导致了错误,这实际上在普通的android应用程序中有效,但不幸的是在ANE中没有
所以我尝试使用 Android Studio 分析 .apk,发现它包含在其中,you can see on my screenshot here。而且很奇怪,因为代码找不到。
附加信息,我使用的platform.xml:
<platform xmlns="http://ns.adobe.com/air/extension/13.0">
<packagedDependencies>
<packagedDependency>support-compat-26.1.0-sources.jar</packagedDependency>
<packagedDependency>volley-1.1.0-sources.jar</packagedDependency>
</packagedDependencies>
</platform>
【问题讨论】:
-
maven 还是 gradle ?
-
可惜我不知道AirSDK是用什么东西把flash工程编译成apk的。但是关于 .jar 依赖项,我是从 maven 存储库中获得的。当我使用普通的 android 应用程序对其进行测试时,我正在使用 gradle 来构建 .apk
-
好吧,看看我的回答。也许,它会帮助你
-
当您使用 adt 打包您的 ANE 时,您是否正确地将平台选项设置为您的 platform.xml 以用于 android 实现?
-
@Michael 我正在像这样包装我的 ane:
adt -package -target ane com.company.BackgroundJob.ane .\extension.xml -swc .\BackgroundJobAPI.swc -platform Android-ARM -platformoptions .\platform.xml -C .\Android . -platform Android-x86 -platformoptions .\platform.xml -C .\Android .我这样做有什么问题吗?
标签: java android actionscript-3 air air-native-extension