首页 > 解决方案 > 无法访问我的库实现中的类

问题描述

我正在尝试访问 .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;

关于为什么会发生这种情况的任何想法?

标签: javaandroidandroid-studiogradle

解决方案


选项1:

使用命令行,在项目的根目录中运行:

./gradlew clean && ./gradlew build

然后在工作室中重新编译你的项目,你应该会看到你的新库。

选项 2:

但它只在我改变时才有效

compileSdkVersion 
minSdkVersion 
targetSdkVersion 

inapp和其他模块相同。


推荐阅读