Java 如何在NativeScript插件中链接本地JAR依赖项
我正在构建一个NativeScript插件,并包装Java 如何在NativeScript插件中链接本地JAR依赖项,java,android,typescript,nativescript,nativescript-plugin,Java,Android,Typescript,Nativescript,Nativescript Plugin,我正在构建一个NativeScript插件,并包装JAVA库中的一些功能。在大多数情况下,我看到用户在src/platforms/android/include.gradle中使用compile'org.namespace:library:x.y.z'定义依赖项,但在我的情况下,该库在任何JAVA repos中都不可用,而是一个独立的.jar文件 我尝试了一些用户对实际的Android应用程序的建议,但当然NativeScript有点不同,到目前为止,这些方法都不起作用 我尝试过的步骤: 1)
JAVA
库中的一些功能。在大多数情况下,我看到用户在src/platforms/android/include.gradle
中使用compile'org.namespace:library:x.y.z'
定义依赖项,但在我的情况下,该库在任何JAVA repos中都不可用,而是一个独立的.jar
文件
我尝试了一些用户对实际的Android
应用程序的建议,但当然NativeScript有点不同,到目前为止,这些方法都不起作用
我尝试过的步骤:
1) platforms/android/include.gradle
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile name: 'SimpleNetworking'
}
dependencies {
compile files('libs/SimpleNetworking.jar')
}
2) platforms/android/include.gradle
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile name: 'SimpleNetworking'
}
dependencies {
compile files('libs/SimpleNetworking.jar')
}
在需要此插件作为依赖项的NativeScript应用程序上进行测试时,两次尝试均以失败告终:
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all files for configuration
':app:debugCompileClasspath'.
> Could not find :SimpleNetworking:.
Required by:
project :app
我正在努力解决的特定插件可以找到
更新 在阅读了有关构建依赖项的内容并将
include.gradle
文件更改为如下所示之后:
dependencies {
implementation files('libs/SimpleNetworking.jar')
}
它似乎找到了文件!现在看来被破坏的是其他东西:
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all files for configuration ':app:debugCompileClasspath'.
> Failed to transform file 'SimpleNetworking.jar' to match attributes {artifactType=processed-jar} using transform IdentityTransform
> Transform output file /Users/USERNAME/git/ons-testapp/platforms/android/app/libs/SimpleNetworking.jar does not exist.
我不确定这是一个相关错误还是什么新错误。您只需将JAR/AAR文件放在platforms/android中,您的插件将在编译过程中自动拾取它。您只需将JAR/AAR文件放在platforms/android中,您的插件将在编译过程中自动拾取它。更新--我已将include.gradle调整为使用
实现文件('libs/SimpleNetworking.jar
但是遇到了一个新的错误。我将继续调查!flatDir
不是jar
所必需的。是的,这是我在某处看到并尝试过的一个建议。它没有起作用。我切换到了实现
,到目前为止它似乎被包括在内,但现在还没有解决问题另一个原因。这似乎是相关的:是的,这就是我最终尝试的(见文章中的更新)但是,在设置时,JAR文件似乎没有保留下来。我可以通过手动将JAR文件拉入应用程序项目来使其正常工作。不确定这现在是错误还是NativeScriptUpdate的问题——我已将include.gradle调整为使用实现文件('libs/SimpleNetworking.jar
但是遇到了一个新的错误。我将继续调查!flatDir
不是jar
所必需的。是的,这是我在某处看到并尝试过的一个建议。它没有起作用。我切换到了实现
,到目前为止它似乎被包括在内,但现在还没有解决问题另一个原因。这似乎是相关的:是的,这就是我最终尝试的(见文章中的更新)但是,在设置时,JAR文件似乎没有保留。我可以通过手动将JAR文件拉入应用程序项目来使其正常工作。不确定这是否是一个错误或NativeScript的问题。但是,问题是,如果有人在将来使用此插件的项目上工作,则必须确保never运行tns platform remove android
,然后整个库将被删除。这就是为什么将JAR依赖项抽象到插件似乎是一个更好的主意的部分原因,因为我不希望这样。我指的是插件中的platforms/android
文件夹。大多数插件使用JAR/aar文件以这种方式,它从来就不是一个问题。我自己也尝试过一个小的。src native
目录包含我的AAR文件的源代码,该文件被复制到src/platforms/android/dropbox release.AAR
,并且编译器会在没有任何进一步的代码/配置更改的情况下选择它。对于JAR.Hey Manoj,谢谢你的帮助!我想我试图使用的JAR
库太像一个普通的原生android应用程序了。插件在引用文件时遇到了问题,所以我想我需要改变JAR
文件的添加方式,然后进入那个兔子洞。但问题是如果有人在未来使用此插件的e项目必须确保永远不要运行tns platform remove android
,因为这样整个库都将被删除。这就是为什么将JAR依赖项抽象到插件似乎是一个更好的主意的部分原因,因为我不希望有这种可能。我指的是platforms/android
文件夹。大多数插件都以这种方式使用jar/aar文件,这从来都不是问题。我自己也尝试过一个小的。src native目录包含我的aar文件的源代码,该文件正被复制到src/platforms/android/dropbox release.aar
中,编译器会选择相同的文件t没有任何进一步的代码/配置更改。JAR的过程类似。嘿,Manoj,谢谢这里的帮助!我想我试图使用JAR
库,太像一个普通的原生android应用程序了。插件在引用文件时遇到了问题,所以我想我需要更改JAR
文件的添加和使用方式不要从兔子洞里钻下去。