Код: Выделить всё
12-04 10:45:34.626 27146 27179 W System.err: java.lang.ClassNotFoundException: Didn't find class "com.google.cardboard.sdk.qrcode.CardboardParamsUtils" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/system/lib64, /system_ext/lib64, /system/lib64, /system_ext/lib64]]
12-04 10:45:34.629 27146 27179 W System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
12-04 10:45:34.629 27146 27179 W System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
12-04 10:45:34.630 27146 27179 W System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
12-04 10:45:34.630 27146 27179 W System.err: java.lang.ClassNotFoundException: Didn't find class "com.google.cardboard.sdk.QrCodeCaptureActivity" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/system/lib64, /system_ext/lib64, /system/lib64, /system_ext/lib64]]
12-04 10:45:34.631 27146 27179 W System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
12-04 10:45:34.631 27146 27179 W System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
12-04 10:45:34.631 27146 27179 W System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
12-04 10:45:34.631 27146 27179 F hello_xr.vulka: java_vm_ext.cc:577] JNI DETECTED ERROR IN APPLICATION: RegisterNatives received NULL jclass
12-04 10:45:34.631 27146 27179 F hello_xr.vulka: java_vm_ext.cc:577] in call to RegisterNatives
Я запустил apktool на созданном apk, и поиск обоих классов в выводе показывает, что файлы .smali находятся в apk.
Я также пытался вручную извлечь ndk .arr, как hellocardboard -android пример работает, но безуспешно.
Я переписал некоторые части процесса сборки. Собственный код компилируется с помощью CMake где-то еще как статическая библиотека, а файл build.gradle выглядит следующим образом.
Код: Выделить всё
apply plugin: 'com.android.library'
apply plugin: 'com.google.protobuf'
android {
compileSdkVersion 34
lintOptions {
abortOnError false
}
defaultConfig {
minSdkVersion 26
targetSdkVersion 31
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
defaultConfig {
consumerProguardFiles 'proguard-rules.pro'
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'sdk/proguard-rules.pro'
}
}
sourceSets {
// Sets path to java, jni, resources files and manifest location as it is not the default one.
main {
manifest.srcFile 'sdk/qrcode/android/AndroidManifest.xml'
java.srcDirs = ['sdk/qrcode/android/java', 'sdk/device_params/android/java', 'sdk/screen_params/android/java', 'sdk/java_utils/android/java']
res.srcDirs = ['sdk/qrcode/android/res']
}
// Adds proto file and generated source files
main.java.srcDirs += "${protobuf.generatedFilesBaseDir}/main/javalite"
main.proto.srcDirs = ["proto"]
main.proto.includes = ["cardboard_device.proto"]
}
namespace 'com.google.cardboard.sdk'
}
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.19.4'
}
generateProtoTasks {
all().each { task ->
task.builtins {
java {
option "lite"
}
}
}
}
}
dependencies {
// implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.6.1'
// Android Mobile Vision
// TODO(b/217176538) Migrate to ML Kit.
implementation 'com.google.android.gms:play-services-vision:20.1.3'
implementation 'com.google.android.material:material:1.6.1'
implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... lassloader
Мобильная версия