2

Я планировал создать SDK в android, что означает совместное использование файлов классов и ресурсов (макетов) в другом приложении, которое их требует. Если я экспортирую свое приложение в JAR, он не включает файлы ресурсов и R.class. Я знаю, что в настоящее время Android не поддерживает упаковывание файла ресурсов через JAR, но я искал сеть и нашел одно решение, если компилировать наши файлы ресурсов с исходным кодом, значит, мы можем получить доступ к ресурсу в каком-то другом приложении.Android: добавьте файл ресурсов в JAR

Так по этой причине я сделал это следующим образом:

  1. скопированной все рес содержимое папки в моей исходной папки

    • ЦСИ -> com.mypackege -> res- -> здесь я положил свою папку res
    • Наконец-то моя папка src выглядит как

    • ЦСИ

      com.mypackage

       >myfile.java 
          drawable-hdpi 
          drawable-ldpi 
          drawable-mdpi 
          drawable-xhdpi 
          com.mypackage.drawable 
          com.mypackage.layout 
          com.mypackage.menu 
          com.mypackage.values 
      
  2. и я построить мой проект я получил все файлы класса, включая ресурс и r.class в моем бункере

  3. то я создаю банку вручную с помощью jar -cvf mysample.jar com/mypackage/*

  4. финальная банка содержит все классы и ресурсы моего проекта в стороне mypackage.

затем добавить mysample.jar в другое приложение сказать testapp, здесь я поставил JAR в папке активов (из-за расположения) и добавить построить путь. А также я настраиваю путь построения

В этом приложении я вызываю myfile.class от mysample.jar, который необходим для загрузки макета из этого JAR.

Проблема здесь не видит ресурс под JAR файл, он только видеть ресурс в папке текущего проекта Рез и хотя NULL pointer Exception

Но он вызывает R.java из JAR-файла. Ad также я попытался поместить xmlns: custom = "http://schemas.android.com/apk/res-auto" в мой файл манифеста, он также не работает. Надеюсь, я точно подошел, чтобы закрыть эту проблему, это может быть проблема с сопоставлением ресурсов. У вас есть идея решить эту проблему?

ответ

1

Вы не можете хранить ресурсы в банке. Это возможно, но это сложно, поэтому на данный момент Android предоставляет только Android-библиотеку. В противном случае вы можете использовать скомпилированный исходный код и ресурсы отдельно (путем предоставления идентификаторов ресурсов в вашу библиотеку)

+0

как я могу поделиться своим ресурсом с каким-либо другим приложением через функцию библиотеки Android –

+0

@ Mr.Cool http://stackoverflow.com/questions/7973822/how-to-convert-an-android-library-project-to-an-external-jar посмотрите здесь – Taras

Смежные вопросы