我在此位置my_plugin/src/platforms/android/HERE-sdk.aar
包含了https://developer.here.com的sdk文件。在Java代码中,我可以这样使用它:
package com.here.android.tutorial;
...
import com.here.android.mpa.mapping.MapFragment;
...
private MapFragment mapFragment = null;
private void initialize() {
mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.mapfragment);
...
我尝试过:
// my-plugin.android.ts
import { Common } from './my-plugin.common';
declare var com: any;
export class MyPlugin extends Common {
public mapFragment: any;
constructor() {
super();
this.mapFragment = new com.here.android.mpa.mapping.MapFragment()
}
}
但显示错误:TypeError: Cannot read property 'android' of undefined
如何正确包含.aar
库文件并在Nativescript(JS)代码中使用MapFragment?
答案 0 :(得分:1)
问题解决了!这是解决方案:
要通过Nativescript插件使用本机lib,将lib放置到MY_PLUGIN/src/platforms/android
目录就足够了。 无需编辑include.gradle
文件! Nativescript会找到库本身。因此目录结构应如下所示:
要使SDK在此处工作,请打开AndroidManifest.xml
,添加权限和凭据。因此它将如下所示:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<application android:hardwareAccelerated="true">
<meta-data android:name="com.here.android.maps.appid"
android:value="{ YOUR_APPID }"/>
<meta-data android:name="com.here.android.maps.apptoken"
android:value="{ YOUR_APPTOKEN }"/>
</application>
答案 1 :(得分:1)
除了其他答案,我还必须删除/添加平台
tns platform remove android
tns platform add android
tns run android
答案 2 :(得分:0)
您必须将aar文件作为依赖项添加到include.gradle
shuf: extra operand ‘someWord’
答案 3 :(得分:0)
检查gradle属性以查看是否包含如下所示的Here-sdk:
dependencies {
implementation fileTree(dir: 'libs', include: ['HERE-sdk.aar'])
implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
compile 'com.google.code.gson:gson:2.8.0'
}
您也可以尝试以下