随着围绕AIR 3中的本机扩展支持的所有新的炒作,我没有找到确认或否认可以在本机Android实现中包含和使用外部JAR的单一事物.
所有这些示例基本上都展示了嵌入内置Android API的能力.但是,如果有人想要使用数百个库中的一个使其更容易呢?当然看起来这应该是可能的.我将尝试概述我所做的事情,也许有人会发现一个缺陷:
"ActivityManager: Displayed com.me.androidapp/.AppEntry""mye_native: MyExtension.initialize", "mye_native: MyExtensionContext.createContext"E dalvikvm: Could not find class 'com.thirdparty.SomeClass', referenced from method com.me.nativeExtentions.MyExtensionFunction.call有任何想法吗?它似乎应该以这种方式工作.
我注意到的一件事是,当我从我的纯Java Android应用程序(也有第三方安卓库)中分离出APK和Dex时,看起来第三方的类已包含在其中(不仅仅是jar参考).当我使用我的Flex APK做同样的事情时,我发现只有我自己的Java类和Adobe的,而第三方无法找到我能看到的.
我在Adobe论坛上发布了这个,但我想我会试试SO智囊团.谢谢.
我正在尝试使用 AdvertisingIdClient 获取我的 AIR 应用程序的广告 ID。所以我确实喜欢dvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context)A。我没有收到任何编译时错误。我ANE由此生成。当控制遇到这个语句时,它立即抛出NoClassDefFoundError。我不明白到底发生了什么。这是我的扩展代码
public class GetAdvertismentID implements FREFunction
{
@Override
public FREObject call(FREContext arg0, FREObject[] arg1)
{
Activity activity = arg0.getActivity();
Context context = activity.getApplicationContext();
String advertId = "initializeByGet\n";
try
{
AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context);
//if (!adInfo.isLimitAdTrackingEnabled())
//advertId = advertId + adInfo.getId();
} catch(Error e) {
String stackTrace = "";
StackTraceElement[] stackArray = e.getStackTrace();
for(int i = 0; i < stackArray.length; i++)
stackTrace += stackArray[i].toString() + "\n";
advertId …Run Code Online (Sandbox Code Playgroud)