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