标签: air-native-extension

适用于Android的Adobe AIR 3.1 Native Extension - actionscript中的null扩展上下文

我正在研究Android平台的Native Extension,我被卡住了......

针对Android 2.1 ...在Google Nexus One上进行测试(2.3.6)

该行返回NULL

this.context = ExtensionContext.createExtensionContext("com.company.ane.LocationManager", "");
Run Code Online (Sandbox Code Playgroud)

这是扩展描述符文件:

<extension xmlns="http://ns.adobe.com/air/extension/3.1">
<id>com.company.ane.LocationManager</id>
<versionNumber>0.0.1</versionNumber>
<platforms>
<platform name="iPhone-ARM">
  <applicationDeployment>
    <nativeLibrary>libANELocationManager.a</nativeLibrary>
    <initializer>ExtInitializer</initializer>
    <finalizer>ExtFinalizer</finalizer>
  </applicationDeployment>
</platform>
<platform name="Android-ARM">
<applicationDeployment>         
   <nativeLibrary>libANELocationManager.jar</nativeLibrary>
     <initializer>com.company.ane.android.ANELocationManager</initializer>
</applicationDeployment> 
       </platform></platforms></extension>
Run Code Online (Sandbox Code Playgroud)

那是我的包命令:

adt -package -target ane ./../../app/libs/locationmanager.ane ./../extension.xml -swc ane_location_manager.swc -platform iPhone-ARM library.swf libANELocationManager.a -platform Android-ARM library.swf libANELocationManager.jar
Run Code Online (Sandbox Code Playgroud)

在这个阶段,扩展非常简单......我只是想将字符串值返回给我的应用程序...

package com.company.ane.android;

import java.util.HashMap;
import java.util.Map;

import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;

import android.location.LocationListener;
import android.location.LocationManager;

public class ANELocationManagerContext extends FREContext {

public LocationManager locationManager;
public LocationListener locationListener;

@Override
public void …
Run Code Online (Sandbox Code Playgroud)

java air android actionscript-3 air-native-extension

9
推荐指数
2
解决办法
5108
查看次数

如何在Air Native Extension中使用外部Dll?

我的ANE文件的结构如下所示:

<META-INF>
    <ANE>
        <Windows-x86>
            ExtensionDll.dll
            DllUsedByExtensionDll.dll
        extension.xml
mimetype
catalog.xml
library.swf
Run Code Online (Sandbox Code Playgroud)

如果ExtensionDll.dll使用其他Dll中的函数,则不会加载扩展名.DllMain没有被调用.当空中应用程序使用扩展程序运行时,似乎DllUsedByExtensionDll.dll不在Dll搜索路径中.

如果我不想将它们放入一些常见的Dll路径,我应该如何让应用程序找到额外的Dll?

air windows flash dll air-native-extension

6
推荐指数
2
解决办法
3342
查看次数

Adobe ANE适用于iOS和Android设备,但不适用于AIR模拟器

Adobe 的振动功能在iOS和Android上的Flex移动应用程序中运行良好,但是当我尝试在Windows 7上从Flash Builder 4.7启动AIR模拟器时,我收到错误:

在此输入图像描述

在此输入图像描述

这里是后一个截图的错误消息的副本:

Process terminated without establishing connection to debugger.

The content cannot be loaded because there was a problem loading an extension: Error: Requested extension com.adobe.Vibration is not supported for Windows-x86.

Launch command details:  "C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)\sdks\4.6.0 (AIR 3.5)\bin\adl.exe" -runtime "C:\Program Files\Adobe\Adobe Flash Builder 4.7 (64 Bit)\sdks\4.6.0 (AIR 3.5)\runtimes\air\win" -profile extendedMobileDevice -screensize 640x920:640x960 -XscreenDPI 326 -XversionPlatform IOS -extdir "C:\Users\xxx\Adobe Flash Builder 4.7\.metadata\.plugins\com.adobe.flexbuilder.project.ui\ANEFiles\MyApp-Mobile\win32\" C:\Users\xxx\Documents\MyApp\mobile\bin-debug\MyApp-app.xml C:\Users\xxx\Documents\MyApp\mobile\bin-debug 
Run Code Online (Sandbox Code Playgroud)

同时:

  1. Adobe的另一个ANE - Adobe Gaming SDK …

air flash-builder flex4 flex-mobile air-native-extension

6
推荐指数
1
解决办法
3830
查看次数

如何创建一个本机显示浮动窗口的ANE

如何在Xcode中创建本机窗口并将其与Mobile Flex应用程序集成.本机窗口应该与StageWebView组件类似,其中本机内容浮动在Flex应用程序的其余部分的矩形区域中.

apache-flex xcode adobe ios air-native-extension

6
推荐指数
1
解决办法
4928
查看次数

java.lang.ClassNotFoundException:在Adone AIR本机扩展中未找到类"android.support.v4.content.FileProvider"错误

也许我的问题听起来像之前被问过100次,但相信我,我已经阅读了100个类似问题的每个答案,而不是他们解决了我的问题.因此,我原生扩展的目的是在我的应用缓存文件夹(doc,pdf等)中与第三方应用(Quick Office,Adobe Reader等)共享文档.我发现FileProvider和Intents应该可以解决我的问题.

我的应用说明文件包含:

<application android:enabled="true"
                android:launchMode="singleInstance">
                <provider
                    android:name="android.support.v4.content.FileProvider"
                    android:authorities="com.test.fileprovider"
                    android:exported="false"
                    android:grantUriPermissions="true">
                    <meta-data
                        android:name="android.support.FILE_PROVIDER_PATHS"
                        android:resource="@xml/file_paths" />
                </provider>
            </application>
Run Code Online (Sandbox Code Playgroud)

在Eclipse中的Project属性 - > Java Build Path - > Order and Export selected:Android Private libraries和Android Dependencies.android-support-v4.jar位于项目的libs文件夹中.

FREFunction代码摘录:

package com.test.OpenWithDefaultApp.functions;

.....

import android.content.Intent;
import android.net.Uri;
import android.support.v4.content.FileProvider;

.....

Uri contentUri = FileProvider.getUriForFile(context.getActivity(), "com.test.OpemWithDefaultApp.fileprovider", file);
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(contentUri, fileType);

.....

context.getActivity().startActivity(intent);

.....
Run Code Online (Sandbox Code Playgroud)

我正在使用

Eclipse Luna 4.4.0
Eclipse Android Plugin 23.0.3
Android SDK Tools 23.0.2
Android SDK Platform-tools 20
Android SDK Build-tools 20 …
Run Code Online (Sandbox Code Playgroud)

apache-flex air android air-native-extension

6
推荐指数
1
解决办法
9411
查看次数

Flash Builder 4.6本机扩展错误

我有一个错误,我不明白为什么出现,最奇怪的是有时会发生,但最近总是发生,我使用的代码是相同的,我没有对它做任何更改,事实上我不执行任何代码应用程序的开始,我使用按钮,所以我没有得到这个错误的原因请帮助我,错误是一个对话框,说:

本机扩展错误:存在打包错误/警告.检查每个目标平台的Flex Build Packaging Page中的每个本机扩展.你想继续吗?

当我点击是程序不启动时,debbuger告诉我这一行:

[SWF] SerialCOMGame.swf - 解压缩后的2,121,630字节

但从未开始,我使用RS232库进行串行通信,在得到此错误之前这项工作正常但我不知道发生了什么,我的C代码是:

/*
 * NativeSerialComunication.c
 *
 *  Created on: Jan 10, 2012
 *      Author: Diego Fernando
 */
#include "NativeSerialComunication.h"
int comport = 0;
int baudrate = 57600;
int buffsize = 4096;
unsigned char buffer[4096];
uint32_t comportOpened = 0;
FREObject IsSupported(FREContext ctx, void* functionData, uint32_t argc,
        FREObject argv[]) {
    FREObject result;
    uint32_t isSuppoerted = 1;
    FRENewObjectFromBool(isSuppoerted, &result);
    return result;
}

int startCOMListener() {
    if (!OpenComport(comport, baudrate)) {
        comportOpened = 1;
        return 1; …
Run Code Online (Sandbox Code Playgroud)

c serial-port actionscript-3 flash-builder air-native-extension

5
推荐指数
1
解决办法
3156
查看次数

iOS上AIR Mobile中的声学回声消除 - 使用本机扩展?

我们正在使用AIR Mobile开发iOS视频聊天应用程序,声学回声是一个真正的显示阻止.显然Adobe getEnhancedMicrophone()回归null不能帮助我们.

然而,与Android不同,它看起来像声学回声消除是iOS上的标准功能.有没有办法使用Native Extensions,例如,在我们的应用程序中启用AEC kAudioUnitSubType_VoiceProcessingIO

这个问题仅限iOS,我们此时对Android不感兴趣.

air mobile video-streaming ios air-native-extension

5
推荐指数
1
解决办法
725
查看次数

AdvertisingIdClient.getAdvertisingIdInfo(context) 正在抛出 NoClassDefFoundError

我正在尝试使用 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)

air android ads air-native-extension google-play-services

5
推荐指数
1
解决办法
4400
查看次数

在Flex 3.6 SDK中创建本机扩展时出现ExtensionContext错误

我正在使用Flex 3.6创建原生扩展.编码的本机端然后创建Flex库项目,然后创建.ane文件.最后将.ane文件导入myFlex Project.
这是我遇到的问题.当我正在调试应用程序时,"1046:未找到类型或不是编译时常量:ExtensionContext"错误发生.附上了图书馆项目.as class.

提前致谢

package com.extension.samples
{
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;
    import flash.external.ExtensionContext;

    public class NetworkConnectionANE extends EventDispatcher
    {
        public var _extContext : ExtensionContext;

        public function NetworkConnectionANE(target:IEventDispatcher=null)
        {
            _extContext = ExtensionContext.createExtensionContext("com.extension.samples.NetworkConnectionANE", null);
            super(target);
        }
        public function Connect(path:String):int
        {
            return _extContext.call("nativeFunc", path);
        }
        public function dispose():void
        {
            _extContext.dispose();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我尝试使用从另一个Flex桌面应用程序中的库项目创建的.swc文件,但同样的错误
也尝试使用_extContext = ExtensionContext.createExtensionContext("com.extension.samples.NetworkConnectionANE","");
编辑:有关Flex SDK的问题,SDK 4.6中没有问题.现在的问题是,如何在Flex 3.6 SDK的lib项目中使用Extension?

apache-flex air flash-builder air-native-extension

3
推荐指数
1
解决办法
2569
查看次数

构建Adobe Native Extension时,对第三方类文件的NoClassdefFoundError

我正在构建一个具有第三方JAR依赖关系的Adobe Native扩展(ANE).我确保第三方类文件被提取并打包在ANE JAR中(如答案中所述)

但是当我为我的应用程序构建最终的android APK时,classes.dex中缺少这些类.似乎ADT正以某种方式剥离它们.值得一提的是,我使用的第三方JAR是使用Java 1.7构建的,我使用的是Java 1.6.

apache-flex actionscript noclassdeffounderror actionscript-3 air-native-extension

3
推荐指数
1
解决办法
722
查看次数

从Air Native扩展返回结构

是否可以从您的本机代码返回结构?返回int或boolean是相对简单的,但是如何将更复杂的结构返回到actionscript?

air native actionscript-3 air-native-extension

3
推荐指数
1
解决办法
2849
查看次数

如何让 onActivityResult 在 Adob​​e Air 原生扩展中运行?

我正在编写一个扩展,允许 Flex 应用程序访问 Android 的本机图像选择器。我能够毫无问题地启动图像选择器活动,但是在它返回到调用方(一个 FREFunction 对象)之后,不会调用 onActivityResult。因此,我无法弄清楚用户选择了什么图像。

当我在原生 Android 应用程序中使用完全相同的 FREFunction 内容时,该应用程序工作正常,并且我能够在 onActivityResult 中检索所选图像的 URI。我怎样才能让 onActivityResult 触发,或者至少检索图像选择器活动返回的信息?

apache-flex air android air-native-extension

2
推荐指数
1
解决办法
2760
查看次数

如何将空中原生扩展添加到舞台

我需要在我的Flex Mobile应用程序中使用Android SDK显示用Java编写的Activity.我已经看到它使用Map ANE完成,但找不到任何示例代码或任何类型的东西.我已经创建了我的ANE工作所需的Java和ActionScript代码(创建了活动,真正桥接Java和AS3所需的所有类,事件和方法都在那里),我只是无法弄清楚如何添加它到了舞台.我知道它不能添加到DisplayList中,我很好,它是一个舞台对象.

如果它有帮助,我试图使用MediaPlayer显示视频(由于使用AS3/Flex完成MP4流媒体问题).

迈克尔(2012年8月27日@M:00上午9:44):

08-27 09:27:07.836: I/CS VideoInit(2567): context is set
08-27 09:27:07.836: I/CS VideoInit(2567): intent is instantiated 
08-27 09:27:07.836: I/ActivityManager(349): START {cmp=air.AndroidANETesting2/xi.video.android.extension.VideoActivity u=0} from pid 2567
Run Code Online (Sandbox Code Playgroud)

我活动的第一行是

Log.i("CS VideoActivity","Made it inside the activity somehow");
Run Code Online (Sandbox Code Playgroud)

这是我的Java.这是init函数:

VideoInit.context = context;
Log.i("CS VideoInit","context is set");
Intent intent = new Intent( context.getActivity(), VideoActivity.class );
Log.i("CS VideoInit","intent is instantiated");
context.getActivity().startActivity( intent );
Log.i("CS VideoInit","Activity is started");
context.dispatchStatusEventAsync("PLAY", "PLAY");
Run Code Online (Sandbox Code Playgroud)

这是我的VideoActivity onCreate():

super.onCreate(savedInstanceState);
Log.i("CS VideoActivity","Made it inside the activity somehow");
Run Code Online (Sandbox Code Playgroud)

我的Manifest for good measure(只是申请部分): …

apache-flex air android actionscript-3 air-native-extension

0
推荐指数
1
解决办法
1933
查看次数