将Google Play服务添加到Adobe AIR Android的原生扩展程序中

时间:2015-08-11 14:32:55

标签: android air google-play-services air-native-extension ane

好的,我想知道是否有人设法拉这个东西?我正在进行原生扩展,而我的原生JAR通过反射使用Google Play服务。我已将Google Play服务库添加到我的原生扩展程序,这里是platform.xml的样子:

<platform xmlns="http://ns.adobe.com/air/extension/3.1">
    <packagedDependencies>
        <packagedDependency>android-support-v4.jar</packagedDependency>
        <packagedDependency>google-play-services.jar</packagedDependency>
    </packagedDependencies>
    <packagedResources>
        <packagedResource>
            <packageName>com.google.android.gms</packageName>
            <folderName>google-play-services-res</folderName>
        </packagedResource>
    </packagedResources>
</platform>

我的android构建文件夹的结构如下:

android
- nativeLib.jar
- android-support-v4.jar
- google-play-services-res (folder)
- google-play-services.jar
- library.swf

当我构建我的ANE w / o Google Play服务库(大约5.1 mb)时,我看到我的ANE有例如800 kb。在添加像这样的Google Play服务依赖项之后,ANE大约有6 MB,这对我来说表明platform.xml中陈述的这些JAR以某种方式捆绑在本机扩展中。现在,我的原生JAR有一些功能,我可以看到来自Google Play Services库的调用方法是否失败。当我从我制作的AIR Android应用程序中调用它并在此处集成此生成的ANE时,它总是失败。

所以,我的native JAR和google-play-services JAR在将它们包装在我的ANE之前彼此相邻,但是在从我的本机罐子触发方法之后,事实证明它不是&#39;请注意google-play-services.jar就在附近。

仅仅为了记录,我在使用本机库桥接AIR时没有任何问题,所有调用都正常工作,我暴露给ActionScript文件的界面功能齐全,它只是本机库正在执行某些操作,具体取决于是否找到Google Play服务,在我的情况下 - &gt;他们永远找不到。

任何想法我可能做错了什么以及如何拉这个东西?

提前致谢。

2 个答案:

答案 0 :(得分:1)

你可以使用这个ANE:

Stackoverflow

我们已经将这些库和资源打包了吗?

答案 1 :(得分:0)

我设法使用以下代码让Google Play服务正常运行(只有必要的JAR文件):

https://github.com/Oldes/ANEAmanitaAndroid-public/tree/GooglePlay

您可以使用此拉取请求详细信息查看我使用最小的“hello”ANE进行操作所做的工作:

https://github.com/Oldes/ANEAmanitaAndroid-public/pull/1

我从SDK获取GPS jar文件,从AAR档案中提取它们,如:

extras\google\m2repository\com\google\android\gms\play-services-base\9.4.0\play-services-base-9.4.0.aar

在每个aar(只是zip)文件classes.jar中,我只是在项目中复制并重命名为play-services-base-9.4.0.jar

要让GPS正常运行,您必须在应用清单中指定正确的应用ID,例如at this line