如何在React Native for Android中包含'.jar'文件?

14

我的英文很差。

我是一名前端开发人员。

现在我们需要一个可以使用蓝牙打印机的应用程序,使用React-Native编码以适用于安卓系统。

打印机制造商提供了一个扩展名为'jar'的SDK文件。

请告诉我如何在React-Native中使用此SDK? 然后如何在JSX文件中导入?


你能分享一下你想在React Native中使用的库的细节吗? - Jickson
2个回答

24

在项目中添加*.jar文件可以通过使用build.gradle文件完成:

  • 如果您想向项目中添加一个jar文件,Facebook已经代您完成了!
    只需将带有您的jar文件的libs文件夹添加到项目的android/app目录中即可。

enter image description here

  • 如果您想将一个jar文件添加到一个本地模块(native-module)中,则需将compile fileTree(dir: "libs", include: ["*.jar"])这一行添加到该本地模块(native-module)的build.gradle文件的dependencies部分。

示例-1:

我把okhttp-3.4.1.jar文件添加到了lib文件夹中,然后将其包名添加到依赖部分中:

dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile 'com.facebook.react:react-native:0.19.+'
}

示例-2:

如果我需要另一个在Maven存储库中发现的软件包,我需要将其添加到依赖项块中,如下所示(例如,我想要添加fresco):

dependencies {
    compile 'com.facebook.fresco:fresco:1.9.0'
}

然后,Gradle将为我查找并安装依赖库Fresco

通常,每个Android项目都在项目顶部的build.gradle文件中已经有了Maven仓库配置。例如:

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

示例-3:

(我从未尝试过,但应该可以运行)
如果我有一个drawee-debug.aar文件,我可以按照示例1中的指示将其放入lib文件夹中添加到我的项目中,然后我必须按以下方式更改fileTree行:

compile fileTree(dir: "libs", include: ["*.jar", "*.aar"])  // "*.aar" is added

示例-4:

(Example-3的另一种方法)
如果我有一个drawee-debug.aar文件,我也可以按照示例1中的指示将其放入lib文件夹中并将其添加到我的项目中,然后我需要更改和添加以下几行:

dependencies {
    compile (name:'drawee-debug', ext:'aar')
}

allprojects {
    repositories {
        ...
        flatDir {
            dirs 'libs', './libs'
        }
        ...
    }
}

这样,libs目录被定义在allprojects文件夹中,而aar文件则像其他示例一样在dependencies块中指定。

注意:在Gradle v3.0.1之后,使用implementation代替了compile关键字。

致谢:https://stackoverflow.com/a/37092426/3765109


不行!我应该指出我的Java技能有些生疏。我之所以问,纯粹是因为我正在尝试找到正确的字符串格式来编译一些我包含的库。如果可能的话,你能否更新示例以使用gson-2.2.2.jar - Tyler Miller
感谢您对旧答案的快速回复! - Tyler Miller
例子2解决了我的问题。结尾的注释也救了我一命。回答得好! - Tyler Miller
@efkan我们需要做其他什么来使用这个功能吗? - androider
我该如何使用NativeModules在我的React Native组件中导入模块?在使用implementation添加库后,我该如何找到需要导入的库名称? - Zero0
显示剩余4条评论

1

要将jar文件集成到Android中,请参见此处

为了访问库功能,您需要为您想要通过JavaScript访问的功能创建一个React Native模块。有关更多信息,请参阅此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接