Hi,

.so files integration is perfectly supported when the .so's are put under 
jniLibs/<abi> of any project or library, or integrated through an .aar 
dependency.

no hacks should be used anymore (since android plugin 0.7 I guess).
integrating .so files from jars this way can indeed lead to duplication 
issues and other errors.
In the final APK, .so files should be under lib/<abi>. 
main/jniLibs is a proper location for .so files inside the project but 
absolutely not for .so files inside the APK.


Regards,
Xavier.

On Friday, February 27, 2015 at 7:21:50 AM UTC+1, Jacob G wrote:
>
> Hi Thomas,
>
> I also had the same problem, and came up with the same solution as you. I 
> was wondering how can that be if everyone is saying to put it in src/main. 
> I came across your thread here, and I guess I feel better someone else also 
> experienced the same thing. But I'm wondering what is going on that 
> everyone else does it differently. Maybe they don't notice the dupes?
>
> On Saturday, April 5, 2014 at 3:51:35 PM UTC-4, Thomas Gravina wrote:
>>
>> Did anyone of you noticed that this process include the .so files twice 
>> into the final apk?
>>
>> I recently switched to Android Studio and started using Gradle to build 
>> my Android project and I've got a weird behavior. Basically, I have a lib 
>> in app/src/main/jniLibs, divided in two folders: armeabi and armeabi-7va. 
>> The problem is that since I use Gradle, the APK file is twice more 
>> heavier. The reason is that Gradle copy the *.so files twice in the APK at 
>> two different locations:
>> - lib/
>> - main/jniLibs/
>>
>> When I used to build using Eclipse, everything was fine, *.so files were 
>> copied only one time.
>>
>> Does anyone know if there is a way to avoid this behavior? Is this a bug 
>> in Gradle or am I doing something wrong?
>>
>> On Wednesday, June 5, 2013 7:11:30 AM UTC+1, Yonnie Lu wrote:
>>>
>>> There is a topic we known as: "https://gist.github.com/khernyo/4226923";, 
>>> But i have try this method in gradle plugin 0.4.0+, it doesn't copy the so 
>>> libs to apk.
>>> So I'm confused. But I figured out a new way to hack this before gradle 
>>> support.
>>> The way is: use jar to copy so libs. Is it amazing?right?. Let me show 
>>> how-to:
>>> If you have the following structure:
>>> project
>>> |---libs
>>>       |---armeabi/xxx.so
>>>       |---xxx.jar
>>>       |---xxx.jar
>>> 1.We archive the armeabi folder to zip named:armeabi.zip with the folder 
>>> in zip like: lib/armeabi/xxx.so
>>> 2.Rename armeabi.zip to armeabi.jar and put armeabi.jar into libs folder 
>>> with the other jars.
>>> 3.And when we call 
>>> dependencies {
>>> compile fileTree(dir: 'libs', include: '*.jar')
>>> }
>>> in our build.gradle file, it will extract the so libs to the apks.
>>>
>>> As we know, only class files will be packed into classes.dex file and 
>>> other files will be extracted to the apk as the structure in the jars.
>>> So, That's how-to hack. Easy and amazing. Cool,right?
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to