Search code examples
androidgradlefresco

Shipping multiple APKs on gradle


According to the fresco document http://frescolib.org/docs/multiple-apks.html , I add flowing code to the gradle build:


android {
    ...
    splits {
        abi {
            enable true
            reset()
            include 'x86', 'armeabi-v7a'
            universalApk false
        }
    }
    ...
}

But I got an error when build the android project:
Error:Task with name 'packageRelease' not found in project ':app'.
Am I missing something?

I have just find the reason, I use a lib to analyze the crash called bugly, so I add flowing code to my gradle config:

// project gradle.build
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.tencent.bugly:symtabfileuploader:1.3.9'

}
// app gradle.build
apply plugin: 'bugly'
bugly {
   appId = 'xxxxxx'
   appKey = 'xxxxx'
}
dependencies {
...
compile 'com.tencent.bugly:crashreport:1.2.9'
}

And it will cause the task not found, but I still don not know how to solve it.


Solution

  • If you take a look at https://github.com/BuglyDevTeam/Bugly-Android, they have an explanation how to set up ABI filters and that you have to specify android.useDeprecatedNdk=true. Not sure if the old NDK can be used for ABI splits but you can see if it works.

    If it doesn't work, you can try their option 2 to manually include pre-compiled libraries, which should be compatible with ABI splits.

    You can also raise an issue on their GitHub page about this.