java - 无法访问我的库实现中的类
问题描述
我正在尝试访问 .jar 文件dspread-android_sdk_2.6.3.jar
(
出于任何原因,我在同步 Gradle 时一切正常,但是当我单击运行应用程序以测试我的应用程序时,构建中显示了下一个错误:
error: cannot access QPOSService
class file for com.dspread.xpos.QPOSService not found
我已检查该类是否存在于 .jar 文件中。
这就是我在应用程序 build.gradle 中实现库项目的方式:
implementation project(":library_project_name")
设置.属性:
include ':app', ':library_project_name'
这是库项目的 Gradle:
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
//sourceCompatibility = '1.8'
//targetCompatibility = '1.8'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.android.volley:volley:1.1.1'
}
task copyLibs(type: Copy) {
from configurations.compile
into 'libs'
}
task exportJar(type: Copy) {
from('build/intermediates/bundles/release/')
into 'libs'
include 'dspread-android_sdk_2.6.3.jar'
}
这就是我在 Activity 中导入类的方式:
import com.dspread.xpos.QPOSService;
关于为什么会发生这种情况的任何想法?
解决方案
选项1:
使用命令行,在项目的根目录中运行:
./gradlew clean && ./gradlew build
然后在工作室中重新编译你的项目,你应该会看到你的新库。
选项 2:
但它只在我改变时才有效
compileSdkVersion
minSdkVersion
targetSdkVersion
inapp
和其他模块相同。
推荐阅读
- java - Libgdx 将 2 个以上的精灵数组组合成 1 个精灵数组
- facebook - 如何从 Facebook 机器人中删除“开始”按钮
- ios - 如何将用户在应用程序中拍摄的图像保存到 UIImages 数组中?斯威夫特 4
- java - 将网格从文件读取到 Java 中的特定类
- javascript - 在浏览器当前窗口滚动条中同时使用多种颜色
- c++ - 析构函数总是命中 Null
- python - PyQt5:来自 QTableWidget 的复选框中的状态更改
- ethereum - 将 GethNode 连接到外部 GethNode 失败
- google-cloud-platform - 加载操作中的 BigQuery 错误:总叶字段过多
- python - Pandas 将带有表格数据的整个文本文件加载到一列中