Вот
дал библиотеку Android, она содержит класс Activity, который используется для открытия цели камеры, библиотека прекрасно работает, за исключением того, что часть, вызывающая активность, появляется на экране, и приложение вылетает, выдавая следующие ошибки
Suppressed: java.lang.ClassNotFoundException: com.me.scanner.ScannerViewActivity
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 14 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
Следующее моеbuild.gradle
файл другого проекта, который будет использовать эту библиотеку
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.me.app:gpio_lib@aar'
compile ('com.me.app:scanner@aar'){ transitive = true; }
testCompile 'junit:junit:4.12'
}
Пожалуйста, обратите внимание:
Эта библиотека прекрасно работает как модуль проекта,
compile project(':scannercontrol')
но не при использовании его какaar
в проекте
Я пробовал с и без{ transitive = true; }
, без изменений
scanner.aar
Я принял форму ААР/[library-project]/build/outputs/aar/scanner-release.aar
Обновление 1 - 2017-09-14
АктивностьScannerViewActivity
является частью моей библиотеки, так она вызывается из одного из классов библиотеки
Intent scannerView = new Intent();
scannerView.putExtra(MESSAGE_RECEIVER, new MessageReceiver());
scannerView.setClass(context, ScannerViewActivity.class);
scannerView.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(scannerView);
этоcontext
это примерandroid.app.Application
а не какого-либоActivity
Обновление 2 - 2017-09-14
К счастью, после 2 дней роуминга в Google, я нашел ответ на вопросКласс не найден в аар, Я добавил зависимости библиотеки в проект и смог запустить его сaar
но это не решение моей проблемы,
Ниже приведен поток и проблема, с которой я сейчас сталкиваюсь
Я разрабатываю версию библиотеки для песочницы, которая взаимодействует с определенным оборудованием сканера штрих-кода, поскольку у разработчика не обязательно есть оборудование, они будут использовать версию библиотеки с песочницей, которая позволит разработчику использовать камеру своего устройства в качестве штрих-кода сканер,
Мы хотим, чтобы разработчик извлекAAR
файлыscanner.aar
а такжеscanner-sandbox.aar
из предоставленногоSDK
и использовать любой из них
Мы не хотим, чтобы разработчик добавил дополнительную зависимость к их.gradle
файл, если они хотят запустить версию библиотеки песочницы,
Ниже приведена зависимость, которая используется для имитации камеры устройства в качестве сканера штрих-кода.
compile 'me.dm7.barcodescanner:zxing:1.9.8'
Обновленный вопросКак можно распространить файл aar, не публикуя его в каком-либо хранилище, напримерхранилище maven и все зависимости библиотеки установлены, когда разработчик синхронизирует.gradle
файл