java - 如何添加串口api作为库并在android studio中使用它?

标签 java android android-studio android-ndk serial-port

我正在使用 android studio 开发监控 android 应用程序。我想在我的应用程序中添加 android-serialport-api ( https://code.google.com/p/android-serialport-api/ ) 作为库,并使项目中的串行通信成为可能。我使用 SVN check out 和 Cygwin 下载源代码。我正在串行端口 api 中编译 NDK 文件和 JNI 文件,然后复制所有文件并附加到项目中的库文件中。项目结构如下。

Project structure

然后我将 build.gradle 文件包含在 android-serial-api 中,如下所示。

buildscript {
repositories {
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.12.+'
  }
 }
apply plugin: 'android-library'

android {
  compileSdkVersion 23
  buildToolsVersion "23.0.2"

defaultConfig {

    minSdkVersion 15
    targetSdkVersion 23
}

sourceSets {
    main {
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']

        manifest.srcFile 'project/res/AndroidManifest.xml'
    }
}

}

我将其包含在 app/build.gradle 中

compile project(':libraries:android-serialport-api')

在settings.gradle中我也包含了这个。

  include ':libraries:android-serialport-api'

androidmanifest.xml文件原来是这样的。

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android_serialport_api.sample"
android:versionCode="3"
android:versionName="1.2" >

 <application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="Application" >
<activity
    android:label="@string/app_name"
    android:name="MainMenu" >
    <intent-filter >
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name="SerialPortPreferences" >
</activity>
<activity android:name="ConsoleActivity" >
</activity>
<activity android:name="LoopbackActivity" >
</activity>
<activity android:name="Sending01010101Activity"></activity>
</application>



<uses-sdk android:minSdkVersion="3" />

</manifest>

但是,当我做项目时。有很多错误。所以删除了大部分代码。所以现在库中的androidmanifest.xml是这样的。

 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="android_serialport_api.sample"
   android:versionCode="3"
   android:versionName="1.2" >

<uses-sdk android:minSdkVersion="3" />

</manifest>

删除它们后,我可以使项目和gradle同步。但我不知道如何使用我导入的库中的serial.c 源代码。我该如何修复该程序?待办事项列表中有一些消息。

请帮助我!!

最佳答案

很简单!

  • 使用这个:Hello Jni

  • 从 android sdk 安装 ndk

在其他项目中使用“.so”文件:

  • android studio在此地址创建“.so”文件:“app\build\intermediates\binaries\debug\lib”
  • 在“app\src\main”中创建“jniLibs”文件夹
  • 复制jnilibs文件夹中包含.so文件的abi文件夹
  • 阅读此内容:about .so file

但是当循环发送数据时,文件关闭!!

关于java - 如何添加串口api作为库并在android studio中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34671822/

相关文章:

android - gradle安装的库的源代码在哪里?

java - 如何使用广播接收器在android和另一个进程之间进行通信

java - 自定义分层容器中的绘画问题?

android - 在 Android Studio 中自动在多台设备上运行应用

android - iPhone/Android 引入原生下拉选择器

android - firebase 中可以有包含搜索查询吗?

android - Android Studio 无法识别 Galaxy Tab 4

java - NoClassDefFoundError:无法初始化类

Java - MySQL | double 和小数点

android - Amazon Cloud Drive 的任何 API,Amazon S3 Android 除外