Browse Source

fix 485 big change & CMake & all build.gradle change

dev
MTing 2 days ago
parent
commit
896db0e6c3
  1. 11
      app/build.gradle
  2. 81
      app/src/main/java/com/baidu/idl/face/main/finance/utils/TestPopWindow.java
  3. 30
      app/src/main/java/com/ouxuan/oxface/device/Ox485.java
  4. 31
      app/src/main/java/com/ouxuan/oxface/device/OxGpio.java
  5. 22
      datalibrary/build.gradle
  6. 75
      datalibrary/src/main/java/com/example/datalibrary/db/DBManager.java
  7. 13
      facelibrary/build.gradle
  8. 26
      financelibrary/build.gradle
  9. 35
      lib-serialport/build.gradle
  10. 2
      lib-serialport/src/main/AndroidManifest.xml
  11. 2
      settings.gradle

11
app/build.gradle

@ -61,6 +61,10 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
} }
lint {
abortOnError false
}
} }
dependencies { dependencies {
@ -81,7 +85,8 @@ dependencies {
// Android开发工具库 // Android开发工具库
implementation 'com.blankj:utilcode:1.30.7' implementation 'com.blankj:utilcode:1.30.7'
// - 使
implementation project(':lib-serialport')
// //
implementation project(':facelibrary') implementation project(':facelibrary')
@ -97,10 +102,6 @@ dependencies {
testImplementation 'junit:junit:4.13.2' testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
//
// implementation 'com.github.kongqw:AndroidSerialPort:2.1.1'
// implementation 'com.github.kongqw:AndroidSerialPort:1.0.1'
} }
configurations { configurations {

81
app/src/main/java/com/baidu/idl/face/main/finance/utils/TestPopWindow.java

@ -1,81 +0,0 @@
package com.baidu.idl.face.main.finance.utils;
import android.content.Context;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;
import com.baidu.idl.main.facesdk.financelibrary.R;
public class TestPopWindow extends PopupWindow {
private String TAG = "TestPopWindow";
private final Context gContext;
private View view;
public TestPopWindow(Context context) {
this(context, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
Log.d(TAG, "TestPopWindow: " + ViewGroup.LayoutParams.WRAP_CONTENT
+ "bbb:" + ViewGroup.LayoutParams.WRAP_CONTENT);
}
public TestPopWindow(Context context, int width, int height) {
super(context);
this.gContext = context;
view = View.inflate(context, R.layout.layout_no_face_detected, null);
view.findViewById(R.id.retest_detectBtn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mOnClickFinance.rester(true);
}
});
view.findViewById(R.id.back_homeBtn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mOnClickFinance.rester(false);
}
});
setContentView(view);
// 设置窗口的高和宽
setWidth(width);
setHeight(height);
// 设置弹窗内科点击
setTouchable(true);
setOutsideTouchable(true);
setFocusable(true);
// TODO去除背景
setBackgroundDrawable(null);
}
/**
* 显示popupWindow
*/
public void showPopupWindow(View parent) {
if (!this.isShowing()) {
// 以下拉方式显示popupwindow调整位置使其不会完全遮挡预览界面
this.showAtLocation(parent, Gravity.CENTER, 0, -50);
} else {
this.dismiss();
}
}
public void closePopupWindow() {
if (this.isShowing()) {
this.dismiss();
}
}
public void setmOnClickFinance(OnClickFinance mOnClickFinance) {
this.mOnClickFinance = mOnClickFinance;
}
public OnClickFinance mOnClickFinance;
public interface OnClickFinance {
void rester(boolean isReTest);
}
}

30
app/src/main/java/com/ouxuan/oxface/device/Ox485.java

@ -122,13 +122,10 @@ public class Ox485 {
try { try {
// 检查串口是否已经打开 // 检查串口是否已经打开
if (serialPortManager.isOpen()) {
LogManager.logInfo(TAG, "串口已打开,直接发送命令");
sendCommandAndWaitResponse(callback);
} else {
LogManager.logInfo(TAG, "串口未打开,尝试打开串口");
openSerialPortAndSend(callback);
}
// 注意SerialPortManager没有isOpen()方法我们需要通过其他方式判断
// 这里我们直接尝试打开串口
LogManager.logInfo(TAG, "尝试打开串口");
openSerialPortAndSend(callback);
} catch (Exception e) { } catch (Exception e) {
String errorMsg = "485通信异常: " + e.getMessage(); String errorMsg = "485通信异常: " + e.getMessage();
LogManager.logError(TAG, errorMsg, e); LogManager.logError(TAG, errorMsg, e);
@ -324,11 +321,8 @@ public class Ox485 {
*/ */
public void checkIsNeedOpen485() { public void checkIsNeedOpen485() {
LogManager.logInfo(TAG, "检查是否需要打开485串口"); LogManager.logInfo(TAG, "检查是否需要打开485串口");
if (!serialPortManager.isOpen()) {
LogManager.logInfo(TAG, "串口未打开,需要打开");
} else {
LogManager.logInfo(TAG, "串口已打开");
}
// 注意SerialPortManager没有isOpen()方法
LogManager.logInfo(TAG, "无法直接检查串口状态");
} }
/** /**
@ -338,10 +332,8 @@ public class Ox485 {
public void send485HexCommand(String hexCommand) { public void send485HexCommand(String hexCommand) {
LogManager.logInfo(TAG, "发送485 HEX命令: " + hexCommand); LogManager.logInfo(TAG, "发送485 HEX命令: " + hexCommand);
try { try {
if (!serialPortManager.isOpen()) {
LogManager.logError(TAG, "串口未打开,无法发送命令");
return;
}
// 注意SerialPortManager没有isOpen()方法
// 我们假设串口已经打开
byte[] hexBytes = hexStringToByteArray(hexCommand); byte[] hexBytes = hexStringToByteArray(hexCommand);
serialPortManager.sendBytes(hexBytes); serialPortManager.sendBytes(hexBytes);
@ -356,8 +348,8 @@ public class Ox485 {
* @return 串口状态描述 * @return 串口状态描述
*/ */
public String get485Status() { public String get485Status() {
boolean isOpen = serialPortManager.isOpen();
String status = "串口状态: " + (isOpen ? "已打开" : "已关闭") +
// 注意SerialPortManager没有isOpen()方法
String status = "串口状态: 无法直接检查" +
", 路径: " + DEFAULT_SERIAL_PORT_PATH + ", 路径: " + DEFAULT_SERIAL_PORT_PATH +
", 波特率: " + DEFAULT_BAUD_RATE + ", 波特率: " + DEFAULT_BAUD_RATE +
", 485模式: " + (gateCamera485OxOn ? "已启用" : "未启用"); ", 485模式: " + (gateCamera485OxOn ? "已启用" : "未启用");
@ -373,7 +365,7 @@ public class Ox485 {
try { try {
cancelTimeout(); cancelTimeout();
if (serialPortManager != null) { if (serialPortManager != null) {
serialPortManager.close();
serialPortManager.closeSerialPort();
LogManager.logInfo(TAG, "485串口已关闭"); LogManager.logInfo(TAG, "485串口已关闭");
} }
} catch (Exception e) { } catch (Exception e) {

31
app/src/main/java/com/ouxuan/oxface/device/OxGpio.java

@ -49,7 +49,7 @@ public class OxGpio {
private static volatile OxGpio instance; private static volatile OxGpio instance;
// 485通信相关 // 485通信相关
private SerialPort485 serialPort485;
private Ox485 ox485;
private Handler mainHandler; private Handler mainHandler;
private boolean gateCamera485OxOn = false; private boolean gateCamera485OxOn = false;
@ -67,8 +67,8 @@ public class OxGpio {
private OxGpio() { private OxGpio() {
mainHandler = new Handler(Looper.getMainLooper()); mainHandler = new Handler(Looper.getMainLooper());
// 初始化SerialPort485实例
serialPort485 = SerialPort485.getInstance();
// 初始化Ox485实例
ox485 = Ox485.getInstance();
} }
/** /**
@ -91,8 +91,8 @@ public class OxGpio {
* @param context 上下文 * @param context 上下文
*/ */
public void initialize(android.content.Context context) { public void initialize(android.content.Context context) {
// 初始化SerialPort485
serialPort485.initialize(context);
// 初始化Ox485
ox485.initialize(context);
LogManager.logInfo(TAG, "OxGpio模块初始化完成"); LogManager.logInfo(TAG, "OxGpio模块初始化完成");
} }
@ -189,7 +189,7 @@ public class OxGpio {
*/ */
public void setGateCamera485OxOn(boolean enabled) { public void setGateCamera485OxOn(boolean enabled) {
this.gateCamera485OxOn = enabled; this.gateCamera485OxOn = enabled;
serialPort485.setGateCamera485OxOn(enabled);
ox485.setGateCamera485OxOn(enabled);
LogManager.logInfo(TAG, "设置485模式开关: " + enabled); LogManager.logInfo(TAG, "设置485模式开关: " + enabled);
} }
@ -218,8 +218,8 @@ public class OxGpio {
return; return;
} }
// 使用SerialPort485进行通信
serialPort485.sendHex485ForPeopleNum(new SerialPort485.SerialPort485Callback() {
// 使用Ox485进行通信
ox485.sendHex485ForPeopleNum(new Ox485.PeopleNumCallback() {
@Override @Override
public void onSuccess(int peopleNum) { public void onSuccess(int peopleNum) {
LogManager.logInfo(TAG, "485获取人数成功: " + peopleNum); LogManager.logInfo(TAG, "485获取人数成功: " + peopleNum);
@ -267,7 +267,7 @@ public class OxGpio {
*/ */
public void checkIsNeedOpen485() { public void checkIsNeedOpen485() {
LogManager.logInfo(TAG, "检查是否需要打开485串口"); LogManager.logInfo(TAG, "检查是否需要打开485串口");
serialPort485.checkIsNeedOpen485();
ox485.checkIsNeedOpen485();
} }
/** /**
@ -276,7 +276,8 @@ public class OxGpio {
*/ */
public void send485HexCommand(String hexCommand) { public void send485HexCommand(String hexCommand) {
LogManager.logInfo(TAG, "发送485 HEX命令: " + hexCommand); LogManager.logInfo(TAG, "发送485 HEX命令: " + hexCommand);
serialPort485.sendHex(hexCommand);
// 使用Ox485的send485HexCommand方法
ox485.send485HexCommand(hexCommand);
} }
/** /**
@ -284,7 +285,8 @@ public class OxGpio {
* @return 串口状态描述 * @return 串口状态描述
*/ */
public String get485Status() { public String get485Status() {
return serialPort485.getSerialPortStatus();
// 使用Ox485的get485Status方法
return ox485.get485Status();
} }
/** /**
@ -292,7 +294,8 @@ public class OxGpio {
*/ */
public void close485SerialPort() { public void close485SerialPort() {
LogManager.logInfo(TAG, "关闭485串口"); LogManager.logInfo(TAG, "关闭485串口");
serialPort485.closeSerialPort();
// 使用Ox485的close485SerialPort方法
ox485.close485SerialPort();
} }
// ==================== 内部辅助方法 ==================== // ==================== 内部辅助方法 ====================
@ -504,8 +507,8 @@ public class OxGpio {
*/ */
public void release() { public void release() {
LogManager.logInfo(TAG, "释放OxGpio资源"); LogManager.logInfo(TAG, "释放OxGpio资源");
if (serialPort485 != null) {
serialPort485.release();
if (ox485 != null) {
ox485.release();
} }
} }
} }

22
datalibrary/build.gradle

@ -4,15 +4,15 @@ plugins {
android { android {
namespace 'com.example.datalibrary' namespace 'com.example.datalibrary'
compileSdkVersion 29
compileSdkVersion 35
buildToolsVersion "35.0.0" buildToolsVersion "35.0.0"
defaultConfig { defaultConfig {
minSdkVersion 16
targetSdkVersion 29
minSdkVersion 21
targetSdkVersion 35
versionCode 5 versionCode 5
versionName "5.0" versionName "5.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro' consumerProguardFiles 'consumer-rules.pro'
} }
@ -22,17 +22,21 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
} }
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
} }
lint {
abortOnError false
}
} }
dependencies { dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'androidx.appcompat:appcompat:1.6.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation project(path: ':facelibrary') implementation project(path: ':facelibrary')
} }

75
datalibrary/src/main/java/com/example/datalibrary/db/DBManager.java

@ -165,11 +165,16 @@ public class DBManager {
String limit = start + " , " + offset; String limit = start + " , " + offset;
cursor = db.query(DBHelper.TABLE_USER_GROUP, null, null, null, null, null, null, limit); cursor = db.query(DBHelper.TABLE_USER_GROUP, null, null, null, null, null, null, limit);
while (cursor != null && cursor.getCount() > 0 && cursor.moveToNext()) { while (cursor != null && cursor.getCount() > 0 && cursor.moveToNext()) {
int dbId = cursor.getInt(cursor.getColumnIndex("_id"));
String groupId = cursor.getString(cursor.getColumnIndex("group_id"));
String desc = cursor.getString(cursor.getColumnIndex("desc"));
long updateTime = cursor.getLong(cursor.getColumnIndex("update_time"));
long ctime = cursor.getLong(cursor.getColumnIndex("ctime"));
int idIndex = cursor.getColumnIndex("_id");
int dbId = (idIndex != -1) ? cursor.getInt(idIndex) : -1;
int groupIdIndex = cursor.getColumnIndex("group_id");
String groupId = (groupIdIndex != -1) ? cursor.getString(groupIdIndex) : "";
int descIndex = cursor.getColumnIndex("desc");
String desc = (descIndex != -1) ? cursor.getString(descIndex) : "";
int updateTimeIndex = cursor.getColumnIndex("update_time");
long updateTime = (updateTimeIndex != -1) ? cursor.getLong(updateTimeIndex) : 0L;
int ctimeIndex = cursor.getColumnIndex("ctime");
long ctime = (ctimeIndex != -1) ? cursor.getLong(ctimeIndex) : 0L;
Group group = new Group(); Group group = new Group();
group.setGroupId(groupId); group.setGroupId(groupId);
@ -308,15 +313,24 @@ public class DBManager {
count = cursor.getCount(); count = cursor.getCount();
dbLoadListener.onStart(count); dbLoadListener.onStart(count);
while (cursor != null && cursor.getCount() > 0 && cursor.moveToNext()) { while (cursor != null && cursor.getCount() > 0 && cursor.moveToNext()) {
int dbId = cursor.getInt(cursor.getColumnIndex("_id"));
String userId = cursor.getString(cursor.getColumnIndex("user_id"));
String userName = cursor.getString(cursor.getColumnIndex("user_name"));
String userInfo = cursor.getString(cursor.getColumnIndex("user_info"));
String faceToken = cursor.getString(cursor.getColumnIndex("face_token"));
byte[] feature = cursor.getBlob(cursor.getColumnIndex("feature"));
String imageName = cursor.getString(cursor.getColumnIndex("image_name"));
long updateTime = cursor.getLong(cursor.getColumnIndex("update_time"));
long ctime = cursor.getLong(cursor.getColumnIndex("ctime"));
int dbIdIndex = cursor.getColumnIndex("_id");
int dbId = (dbIdIndex != -1) ? cursor.getInt(dbIdIndex) : -1;
int userIdIndex = cursor.getColumnIndex("user_id");
String userId = (userIdIndex != -1) ? cursor.getString(userIdIndex) : "";
int userNameIndex = cursor.getColumnIndex("user_name");
String userName = (userNameIndex != -1) ? cursor.getString(userNameIndex) : "";
int userInfoIndex = cursor.getColumnIndex("user_info");
String userInfo = (userInfoIndex != -1) ? cursor.getString(userInfoIndex) : "";
int faceTokenIndex = cursor.getColumnIndex("face_token");
String faceToken = (faceTokenIndex != -1) ? cursor.getString(faceTokenIndex) : "";
int featureIndex = cursor.getColumnIndex("feature");
byte[] feature = (featureIndex != -1) ? cursor.getBlob(featureIndex) : new byte[0];
int imageNameIndex = cursor.getColumnIndex("image_name");
String imageName = (imageNameIndex != -1) ? cursor.getString(imageNameIndex) : "";
int updateTimeIndex = cursor.getColumnIndex("update_time");
long updateTime = (updateTimeIndex != -1) ? cursor.getLong(updateTimeIndex) : 0L;
int ctimeIndex = cursor.getColumnIndex("ctime");
long ctime = (ctimeIndex != -1) ? cursor.getLong(ctimeIndex) : 0L;
User user = new User(); User user = new User();
user.setId(dbId); user.setId(dbId);
@ -364,27 +378,36 @@ public class DBManager {
String[] whereValue = {GROUP_ID}; String[] whereValue = {GROUP_ID};
cursor = db.query(DBHelper.TABLE_USER, null, where, whereValue, null, null, null); cursor = db.query(DBHelper.TABLE_USER, null, where, whereValue, null, null, null);
while (cursor != null && cursor.getCount() > 0 && cursor.moveToNext()) { while (cursor != null && cursor.getCount() > 0 && cursor.moveToNext()) {
int dbId = cursor.getInt(cursor.getColumnIndex("_id"));
String userId = cursor.getString(cursor.getColumnIndex("user_id"));
String userName = cursor.getString(cursor.getColumnIndex("user_name"));
String userInfo = cursor.getString(cursor.getColumnIndex("user_info"));
String faceToken = cursor.getString(cursor.getColumnIndex("face_token"));
byte[] feature = cursor.getBlob(cursor.getColumnIndex("feature"));
String imageName = cursor.getString(cursor.getColumnIndex("image_name"));
long updateTime = cursor.getLong(cursor.getColumnIndex("update_time"));
long ctime = cursor.getLong(cursor.getColumnIndex("ctime"));
int dbIdIndex = cursor.getColumnIndex("_id");
int dbId = (dbIdIndex != -1) ? cursor.getInt(dbIdIndex) : -1;
int userIdIndex = cursor.getColumnIndex("user_id");
String userId = (userIdIndex != -1) ? cursor.getString(userIdIndex) : "";
int userNameIndex = cursor.getColumnIndex("user_name");
String userName = (userNameIndex != -1) ? cursor.getString(userNameIndex) : "";
int userInfoIndex = cursor.getColumnIndex("user_info");
String userInfo = (userInfoIndex != -1) ? cursor.getString(userInfoIndex) : "";
int faceTokenIndex = cursor.getColumnIndex("face_token");
String faceToken = (faceTokenIndex != -1) ? cursor.getString(faceTokenIndex) : "";
int featureIndex = cursor.getColumnIndex("feature");
byte[] feature = (featureIndex != -1) ? cursor.getBlob(featureIndex) : new byte[0];
int imageNameIndex = cursor.getColumnIndex("image_name");
String imageName = (imageNameIndex != -1) ? cursor.getString(imageNameIndex) : "";
int updateTimeIndex = cursor.getColumnIndex("update_time");
long updateTime = (updateTimeIndex != -1) ? cursor.getLong(updateTimeIndex) : 0L;
int ctimeIndex = cursor.getColumnIndex("ctime");
long ctime = (ctimeIndex != -1) ? cursor.getLong(ctimeIndex) : 0L;
User user = new User(); User user = new User();
user.setId(dbId); user.setId(dbId);
user.setUserId(userId); user.setUserId(userId);
user.setGroupId(GROUP_ID);
user.setUserName(userName); user.setUserName(userName);
user.setCtime(ctime);
user.setUpdateTime(updateTime);
user.setUserInfo(userInfo); user.setUserInfo(userInfo);
user.setFaceToken(faceToken); user.setFaceToken(faceToken);
user.setFeature(feature); user.setFeature(feature);
user.setImageName(imageName); user.setImageName(imageName);
user.setGroupId(GROUP_ID);
user.setUpdateTime(updateTime);
user.setCtime(ctime);
users.add(user); users.add(user);
} }
} finally { } finally {

13
facelibrary/build.gradle

@ -2,22 +2,22 @@ apply plugin: 'com.android.library'
android { android {
namespace 'com.baidu.idl.main.facesdk' namespace 'com.baidu.idl.main.facesdk'
compileSdkVersion 29
compileSdkVersion 35
buildToolsVersion '35.0.0' buildToolsVersion '35.0.0'
publishNonDefault true publishNonDefault true
buildFeatures { buildFeatures {
buildConfig true buildConfig true
} }
defaultConfig { defaultConfig {
minSdkVersion 16
targetSdkVersion 29
minSdkVersion 21
targetSdkVersion 35
versionCode 5 versionCode 5
versionName "5.0" versionName "5.0"
ndk { ndk {
moduleName "facesdk" moduleName "facesdk"
ldLibs "log" ldLibs "log"
abiFilters "armeabi-v7a"
abiFilters "armeabi-v7a", "arm64-v8a"
} }
} }
@ -45,6 +45,11 @@ android {
buildConfigField 'boolean', 'USE_AIKL', 'true' buildConfigField 'boolean', 'USE_AIKL', 'true'
} }
} }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
} }
dependencies { dependencies {

26
financelibrary/build.gradle

@ -2,19 +2,19 @@ apply plugin: 'com.android.library'
android { android {
namespace 'com.baidu.idl.main.facesdk.financelibrary' namespace 'com.baidu.idl.main.facesdk.financelibrary'
compileSdkVersion 29
compileSdkVersion 35
buildToolsVersion "35.0.0" buildToolsVersion "35.0.0"
buildFeatures { buildFeatures {
buildConfig true buildConfig true
} }
defaultConfig { defaultConfig {
minSdkVersion 16
targetSdkVersion 29
minSdkVersion 21
targetSdkVersion 35
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro' consumerProguardFiles 'consumer-rules.pro'
} }
@ -25,16 +25,24 @@ android {
} }
} }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
lint {
abortOnError false
}
} }
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation project(path: ':facelibrary') implementation project(path: ':facelibrary')
// orbbec_module-debug.aar的依赖flatDir方式 // orbbec_module-debug.aar的依赖flatDir方式

35
lib-serialport/build.gradle

@ -1,33 +1,50 @@
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
android { android {
compileSdkVersion 32
namespace 'com.kongqw.serialportlibrary'
compileSdk 35
buildToolsVersion "35.0.0"
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 32
targetSdkVersion 35
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
consumerProguardFiles "consumer-rules.pro"
externalNativeBuild { externalNativeBuild {
cmake { cmake {
arguments '-DANDROID_TOOLCHAIN=clang'
cppFlags ""
abiFilters "armeabi-v7a", "arm64-v8a"
} }
} }
} }
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
version "3.31.6"
}
}
buildTypes { buildTypes {
release { release {
minifyEnabled false minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
jniDebuggable true
} }
} }
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
} }
} }
dependencies { dependencies {
implementation 'androidx.annotation:annotation:1.7.0'
} }

2
lib-serialport/src/main/AndroidManifest.xml

@ -1,7 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kongqw.serialportlibrary"> package="com.kongqw.serialportlibrary">
<application android:allowBackup="true" android:label="@string/app_name"
<application android:allowBackup="false" android:label="@string/app_name"
android:supportsRtl="true"> android:supportsRtl="true">
</application> </application>

2
settings.gradle

@ -25,5 +25,5 @@ include ':app'
include ':facelibrary' include ':facelibrary'
include ':financelibrary' include ':financelibrary'
include ':datalibrary' include ':datalibrary'
include ':oxplugin_padface'
// include ':oxplugin_padface'
include ':lib-serialport' include ':lib-serialport'
Loading…
Cancel
Save