我正在使用Titanium SDK 9创建一个Android模块。我需要在模块中包含2个.aar文件。根据文档,您不能再将它们添加到lib
目录中:
“对于Titanium 6.1.1-8.3.1,您还可以将AAR(Android存档)库文件复制到模块的lib目录。但是,从Titanium 9.0.0开始不支持此功能,这要求您引用这些文件。而是通过build.gradle文件访问AAR库。”
但是如何正确引用它们?我的build.gradle文件的以下配置可以编译,但是当我使用该模块时,当我使用某些.aar文件类时,会立即看到并显示诸如“ Lpolar / com / sdk / api / PolarBleApiDefaultImpl的失败分辨率”之类的错误:
implementation files('../../libs/polar-ble-sdk.aar')
implementation files('../../libs/polar-protobuf-release.aar')
// Below 2 lines also compile
// compile files('../../libs/polar-ble-sdk.aar')
// compile files('../../libs/polar-protobuf-release.aar')
implementation group: 'commons-io', name: 'commons-io', version: '2.4'
implementation 'com.google.protobuf:protobuf-java:3.1.0'
implementation 'io.reactivex.rxjava2:rxjava:2.1.5'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
我试图在Titanium项目中执行的呼叫导致错误:
import polar.com.sdk.api.PolarBleApi;
import polar.com.sdk.api.PolarBleApiDefaultImpl;
// and then later on
PolarBleApi api = PolarBleApiDefaultImpl.defaultImplementation(this,
PolarBleApi.FEATURE_HR);
答案 0 :(得分:1)
在https://github.com/polarofficial/polar-ble-sdk
建立了图书馆使用此build.gradle
repositories {
maven { url "https://oss.jfrog.org/libs-snapshot" }
}
dependencies {
implementation files('../../libs/polar-ble-sdk.aar')
implementation files('../../libs/polar-protobuf-release.aar')
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
implementation 'io.reactivex.rxjava3:rxjava:3.0.0'
}
工作正常。使用import polar.com.sdk.api.PolarBleApi;
或通过Android Studio自动完成都没有问题。
编译工作正常(但最后我没有在Titanium中尝试该模块)。
编辑:
platform/android/build.gradle
(内容相同)/build/libs
并添加库 @Kroll.method
public void create()
{
PolarBleApi api = PolarBleApiDefaultImpl.defaultImplementation(TiApplication.getAppCurrentActivity(), PolarBleApi.FEATURE_HR);
Log.i("Polar", "Version: " + PolarBleApiDefaultImpl.versionInfo());
}
var window = Ti.UI.createWindow({
title: "Test"
});
var polar = require("ti.polar");
polar.create();
window.open();
输出:[INFO] Polar: (main) [92,92] Version: 2.2.2