Bir uygulamada 32 ve 64 bit .so dosyaları nasıl karıştırılır

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

İlk olarak, bir uygulamada .so dosyasının farklı mimarilerinin karışık kullanımına izin vermediğini biliyorum (Parça sadece 32, diğer kısım sadece 64) kullanıyor

Yani, dinamik olarak 64 ve 32 bit dosyaları yüklemek için yeni bir süreç açmaya çalıştım System.load() ama System.load() error hata attı ve uygulama çöktü! Bu problemi birden çok süreçten nasıl çözebilirim? Yoksa bunu çözmenin başka bir yolu var mı?

5 Comments
Markus 07/27/2017
SO'ya hoş geldiniz! Lütfen yardım sayfalarını okumak için biraz zaman ayırın, özellikle "Burada hangi konuları sorabilirim?" ve "Ne tür sorular sormamalıyım?" . Ayrıca, lütfen turunuza katılın ve iyi sorular sorma hakkında bilgi edinin . Son olarak lütfen Minimal, Tam ve Doğrulanabilir bir Örnek oluşturmayı öğrenin. Hata ile ilgili ayrıntılar çok yardımcı olacaktır.
Alex Cohn 07/27/2017
Bu harika bir fikir! Ama ne tür bir çocuk süreci başlatmak istiyorsun? Servis? Bunun işe yarayabileceğini sanmıyorum çünkü sistem APK'nızın analizine dayanarak 32-bit modunu açıp açmayacağınıza karar veriyor ve JVM buna göre ayarlanıyor.
Alex Cohn 07/27/2017
Bkz. Stackoverflow.com/a/31879900/192373 : pm , uygulamayı yüklerken ABI'yi zorlayabilir.
Carmelo M 07/28/2017
@AlexCohn Teşekkürler! Size katılıyorum, bir çocuk işlem (Activity) bu sorunu çözemez。 [stackoverflow.com/a/31879900/192373] çalışmıyor, çünkü işlevinin bir kısmını 32-bit .so kullanır ve fonksiyon aynı app 64-bit .so uses kullanır.
Carmelo M 07/28/2017
@AlexCohn Başka fikriniz var mı? usta

1 Answers


Alex Cohn 07/30/2017.

Ben denedim. Bunun üzerine, bu çalışır: armeabi paylaşılan libs 'her zamanki şekilde' kullanın ve Runtime.exec () veya C ile sistem () ile bir arm64-v8a çalıştırılabilir çalıştırın.

Yürütülebilir öğeleri varlıklara koyabilir ve el ile paketini açabilir ya da lib ile başlayıp .so ; şimdi bu dosyayı jniLibs/armeabi dizinine jniLibs/armeabi .

Bunun tersi de işe yarıyor: 64-bit uygulamadan 32-bitlik çalıştırılabilir ( -fPIE unutmayın).

Kütüphane arama yollarının çakışmadığından emin olun.

2 comments
Carmelo M 08/04/2017
Bu harika bir fikir! Projem, video kod çevrimi arkaplanı işlemine benzemiyor, ancak üç boyutlu grafikleri, SurfaceView aracılığıyla kullanıcı hareketleriyle etkileşimde bulunmak zorunda. Bu UI etkileşimi ile başa çıkmak büyük bir sorundur, umarım bana biraz fikir verebilirsin, teşekkür ederim
Alex Cohn 08/04/2017
Arabirim iletişimi ile UI işlemek veya canlı grafikler gerçekleştirebilirsiniz sanmıyorum

Related questions

Hot questions

Language

Popular Tags