Я создаю библиотечный модуль, который может быть использован в приложении Android.В определенной части кода мне нужно загрузить файл JavaScript, чтобы скрипт запускал его.Моя файловая структура выглядит примерно так: https://i.snag.gy/R7hHPI.jpg
└───src
├───main
│ ├───java
│ │ └───calegari
│ │ └───murilo
│ │ └───qacadscrapper
│ │ │ QAcadScrapper.java
│ │ │
│ │ └───utils
│ │ Grade.java
│ │ Subject.java
│ │ User.java
│ │
│ └───resources
│ └───lib
│ Barrett.js
│ BigInt.js
│ RSA.js
│
└───test
├───java
│ └───calegari
│ └───murilo
│ └───qacadtest
│ QAcadTest.java
│
└───resources
При сборке артефакта я настраиваю его так, чтобы IntelliJ помещал содержимое папки / resources в корневую папку файла Jar: https://i.snag.gy/fN4z6t.jpg
Это содержимое файла .jar: https://i.snag.gy/QPR9XK.jpg
├───calegari
│ └───murilo
│ └───qacadscrapper
│ └───utils
├───com
│ └───sun
│ └───script
│ ├───javascript
│ └───util
├───javax
│ └───script
├───lib ---> Here are the JavaScript files
├───META-INF
│ ├───maven
│ │ └───org.jsoup
│ │ └───jsoup
│ └───services
├───org
│ ├───jsoup
│ │ ├───helper
│ │ ├───internal
│ │ ├───nodes
│ │ ├───parser
│ │ ├───safety
│ │ └───select
│ └───mozilla
│ ├───classfile
│ └───javascript
│ ├───annotations
│ ├───ast
│ ├───commonjs
│ │ └───module
│ │ └───provider
│ ├───debug
│ ├───jdk13
│ ├───jdk15
│ ├───json
│ ├───optimizer
│ ├───regexp
│ ├───resources
│ ├───serialize
│ ├───tools
│ │ ├───debugger
│ │ │ └───treetable
│ │ ├───idswitch
│ │ ├───jsc
│ │ ├───resources
│ │ └───shell
│ ├───typedarrays
│ ├───v8dtoa
│ ├───xml
│ └───xmlimpl
└───sun
├───misc
├───reflect
└───security
├───action
└───util
Но когда я пытаюсь установить APK, я получаю ошибку «INSTALL_FAILED_NO_MATCHING_ABIS».Я почти уверен, что причиной этого являются файлы .js из / lib, поскольку ошибка исчезает, если я удаляю их из сборки .jar.
Библиотека настраивается с помощью Gradle.
Как я могу избежать этой ошибки?Надеюсь, что кто-то может помочь!
Обновление
Я заставил IntelliJ добавить файлы .js вместе с файлами Java внутри моего пакета jar, он будет работать при запуске из файла .jar, но если я попытаюсьзапустить некоторые тесты в IntelliJ, это не работает, так как gradle не добавляет файлы в скомпилированный код ...
Решение
Мне удалось заставить его работать, перемещая файлывнутрь исходного пути и добавьте его в файл gradle.build:
sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
resources {
srcDir 'src/main/java'
include '**/*.js'
}
}
test {
java {
srcDirs = ['src/test/java']
}
}
}