Paano ihalo ang 32 at 64-bit na mga file sa isang app

Carmelo M 09/15/2017. 1 answers, 84 views
java android android linux android-ndk android-ndk ndk-build

Una, alam ko na sa isang app ay hindi pinapayagan ang magkakahalo na paggamit ng iba't ibang mga architectures ng file .so (Part ginagamit lamang 32, ang iba pang mga bahagi ay gumagamit lamang ng 64)

Kaya, sinubukan kong Buksan ang isang bagong proseso upang mag-load nang dynamic na 64 at 32-bit kaya mga file, ngunit System.load() itapon ang error at app na nag-crash! Paano malutas ang problemang ito sa pamamagitan ng maramihang mga proseso? O may ibang paraan upang malutas ito?

5 Comments
Markus 07/27/2017
Maligayang pagdating sa KAYA! Mangyaring maglaan ng ilang oras upang basahin ang mga pahina ng tulong , lalo na ang mga seksyon na pinangalanang "Anong mga paksa ang maaari kong tanungin tungkol dito?" at "Anong uri ng mga tanong ang dapat kong maiwasan ang pagtatanong?" . Pakisuyong gawin rin ang paglilibot at basahin ang tungkol sa kung paano magtanong nang mabuti . Panghuli mangyaring alamin kung paano lumikha ng isang Minimal, Kumpleto, at Napatunayan Halimbawa . Ang mga detalye tungkol sa error ay makakatulong sa maraming.
Alex Cohn 07/27/2017
Iyan ay isang cool na ideya! Ngunit anong uri ng proseso ng bata ang gusto mong simulan? Serbisyo? Hindi sa tingin ko ito ay maaaring gumana, dahil ang sistema ay nagpasiya kung i-on ang 32-bit mode batay sa pagtatasa ng iyong APK, at ang JVM ay naka-setup nang naaayon.
Alex Cohn 07/27/2017
Tingnan ang stackoverflow.com/a/31879900/192373 : puwede ng puwersa ng pm ang ABI habang ini-install ang app.
Carmelo M 07/28/2017
@AlexCohn Salamat! Sumasang-ayon ako sa iyo, ang proseso ng isang bata (Aktibidad) ay hindi maaaring malutas ang problemang ito. [Stackoverflow.com/a/31879900/192373] ay hindi gumagana, dahil gusto ko ang bahagi ng function ay gumagamit ng 32-bit .so, at bahagi ng Ang function ay gumagamit ng 64-bit. samakatuwid, sa parehong app.
Carmelo M 07/28/2017
@AlexCohn Mayroon ka bang ibang mga ideya? Master

1 Answers


Alex Cohn 07/30/2017.

Well, sinubukan ko. Sa harap nito, ito ay gumagana: gumamit ng mga armeabi sa karaniwang paraan, at magpatakbo ng isang arm64-v8a maipapatupad mula sa Java na may Runtime.exec () o mula sa C sa system () .

Maaari mong ilagay ang mga maipapatupad sa mga asset at i-unpack ito nang manu-mano, o maaari mong impostor at palitan ang pangalan nito upang magsimula ito sa lib at magtatapos sa .so ; ngayon maaari mong ilagay ang file na ito sa direktoryo jniLibs/armeabi .

Ang kabaligtaran na paraan ay gumagana rin: ilunsad ang 32-bit executable (huwag kalimutan -fPIE ) mula sa 64-bit na app.

Siguraduhin na ang mga path ng paghahanap sa library ay hindi sumasalungat.

2 comments
Carmelo M 08/04/2017
Iyan ay isang cool na ideya !!! Ang aking proyekto ay hindi katulad sa pagpapatakbo ng background sa transcoding ng video, ngunit kailangang i-load ang tatlong-dimensional na graphics, sa pamamagitan ng SurfaceView upang makipag-ugnay sa mga kilos ng user. Kung paano haharapin ang mga pakikipag-ugnayan sa UI ay isang malaking problema, Umaasa ako na maaari mong bigyan ako ng ilang mga ideya, salamat
Alex Cohn 08/04/2017
Sa palagay ko hindi mo kayang mahawakan ang UI o magsagawa ng mga live na graphics sa pamamagitan ng interprocess communication

Related questions

Hot questions

Language

Popular Tags