Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在NativeScript插件中链接本地JAR依赖项_Java_Android_Typescript_Nativescript_Nativescript Plugin - Fatal编程技术网

Java 如何在NativeScript插件中链接本地JAR依赖项

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)

我正在构建一个NativeScript插件,并包装
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
文件的添加和使用方式不要从兔子洞里钻下去。