Я делаю проект библиотеки для поставщика, и для него необходим Android Volley в качестве зависимости. Я использовал этот Create aar file in Android Studio, чтобы создать файл .aar и включить его в тестовый проект. Я использую этот Adding local .aar files to Gradle build using "flatDirs" is not working. Библиотека хорошо связана и ошибок в компиляции проекта нет. Но во время выполнения аварийно завершает испытания приложений заявив, что не может найти VolleyДобавление зависимости gradle к библиотеке aar package
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/volley/toolbox/Volley;
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.volley.toolbox.Volley" on path: DexPathList[[zip file "/data/app/in.gridsync.acttest-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Мой Gradle файл для проекта библиотеки, как это
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.mcxiaoke.volley:library:1.0.19'
}
и в тестовом проекте Gradle это
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "in.gridsync.acttest"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile project(':openapp-library')
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
}
Я предположил, что когда был создан пакет .aar, он будет использовать и включать в себя зависимость, которую он имеет в библиотеке Volley. Может ли кто-нибудь пролить свет на это?
mate Почему бы не просто добавить Volley из вкладки depeneices в Project Structaure? –
add testCompile 'com.mcxiaoke.volley: library: 1.0.19' –
@ItzikSamara, я не хочу, чтобы мой продавец добавил что-либо, кроме пакета aar. Это имеет смысл? Потому что, если я буду использовать какую-то другую библиотеку в будущем, я не хочу, чтобы он менял код своего приложения не более, чем просто заменяя новый пакет **. Aar **, который я даю –