我目前正在使用NativeScript。 我正在尝试将某些Google Play服务包含在Android项目中。 我将相关的.aar文件放入我的应用程序项目的node_modules /文件夹中并构建它。我可以看到它们已成功添加到项目中。
:config阶段:copyAarDependencies
select SUM(user.points) AS TOTAL from (SELECT user.points FROM user ORDER BY user.points DESC LIMIT 2 ) user
但我似乎无法找到一个教程,告诉我如何从NativeScript访问他们的类和模块。 我尝试过这样的事情:
:config phase: addAarDependencies
+adding dependency: C:\Users\pstueven\NativeScript\sample-Groceries\platforms\android\libs\aar\play-services-9.0.0.aar
+adding dependency: C:\Users\pstueven\NativeScript\sample-Groceries\platforms\android\libs\aar\play-services-base-9.0.0.aar
+adding dependency: C:\Users\pstueven\NativeScript\sample-Groceries\platforms\android\libs\aar\play-services-basement-9.0.0.aar
但它们都不起作用。它们如何包含在NativeScript的上下文中?或者不是吗? 有人有提示如何实现这个目标吗?
答案 0 :(得分:3)
在为Angular开发时,如果在Jcenter
/ Maven
存储库(适用于Android插件的存储库,非常类似于所有JavaScript的npmjs)或本地Android SDK中提供库/插件,则在NativeScript中进行开发安装,然后您可以在App_Resources/Android/app.gradle
文件中引用该依赖项。
示例:
dependencies {
compile 'com.google.android.gms:play-services:9.0.0'
}
android {
defaultConfig {
generatedDensities = []
applicationId = "org.nativescript.myApp"
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
构建时,这些依赖项将被下载并正确添加到项目中,以便您可以在应用程序中使用它们。
下一步,您可能想要了解要使用的库的用法。这很可能是API Docs网站或Android / Java代码示例。在NativeScript中,您可以像编写本机应用程序一样访问Native API。这意味着“翻译”您在样本中找到的代码应该几乎毫不费力。您可以在官方文档网站上找到足够的信息来帮助您入门。
https://docs.nativescript.org/runtimes/android/marshalling/java-to-js https://docs.nativescript.org/runtimes/android/metadata/accessing-packages.html
说完所有这些 - 回到你的代码示例 - 你试图实例化的类是抽象的,这意味着你只能创建该类的非抽象非静态后代的实例(https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient)
如果您要在NativeScript中编写它,但是为了示例,我们假设我们可以创建实例,我们会像这样编写它 - >
var apiClient = new com.google.android.gms.common.api.GoogleApiClient();