В Android souce code (AOSP) я пытаюсь скомпилировать библиотеку jar в / vendor / framework / , но не / system / framework .
Поэтому я изменил файл Android.bp для этой библиотеки:
java_library {
name: "com.test.provider",
srcs: ["./java/**/*.java"],
vendor: true,
dex_preopt: {
app_image: true,
},
}
Файл com.test.provider.jar теперь был создан для / vendor / framework / .
Затем я использую эту библиотеку в SystemUI, внес изменения в frame / base / packages / SystemUI / Android.mk:
LOCAL_JAVA_LIBRARIES += com.test.provider
А также ссылаюсь на класс, определенный в com.test.provider.jar, SystemUI был успешно построен.
Но когда это приложение работало, появилось следующее сообщение об ошибке:
12-27 11:35:41.807 5449 5449 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
12-27 11:35:41.807 5449 5449 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.test.testprovidermanager.TestProviderManager" on path: DexPathList[[zip file "/system/priv-app/SystemUI/SystemUI.apk"],nativeLibraryDirectories=[/system/priv-app/SystemUI/lib/arm64, /system/lib64, /vendor/lib64, /system/lib64, /vendor/lib64]]
Похоже, ОС не ищет в этой библиотеке ни / system / framework, ни / vendor / framework,Но когда я собрал эту библиотеку в / system / framework / (удалите «vendor: true» из Android.bp), SystemUI работает нормально, это так странно!
Так что мой вопрос: Как собрать jar-библиотеку в / vendor / framwork / в Android P?
Спасибо за помощь!