Unable to include custom-built cronet in the android app

473 views
Skip to first unread message

Arun Bhagavath

unread,
Mar 15, 2024, 6:04:59 PM3/15/24
to Chromium-dev
I have referred to this doc to build cronet for android  Cronet build instructions (googlesource.com). I'm referring to this codelab to use cronet in my own android application  Cronet Basics (android.com). I would like to include the cronet package which I have built into my app instead of the default cronet-api provided in the codelab. So whatever jar files were built I have included them in the 'libs' directory of my app and I have included the below line in the module-specific build.gradle file. Also a .so file was built which I have pushed to /system/lib64 directory of my android device

dependencies {
implementation fileTree(dir: 'libs', include: '*.jar')
}

The jar files included are given below. 
 cronet_impl_common_java.jar
cronet_impl_common_java-src.jar
 cronet_impl_common_proguard.cfg
 cronet_impl_fake_java.jar
cronet_impl_fake_java-src.jar
cronet_impl_fake_proguard.cfg
cronet_impl_native_java.jar
cronet_impl_native_java-src.jar
cronet_impl_native_proguard.cfg
 cronet_impl_platform_java.jar
 cronet_impl_platform_java-src.jar
 cronet_impl_platform_proguard.cfg
cronet_shared_java.jar
cronet_shared_proguard.cfg
 cronet_shared-src.jar
 httpengine_native_provider_java.jar
 httpengine_native_provider_java-src.jar
 httpengine_native_provider_proguard.cfg

When I run the app, I get the following error

FATAL EXCEPTION: CronetInit
Process: com.google.codelabs.cronet, PID: 25654
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/protobuf/GeneratedMessageLite;
at org.chromium.net.impl.CronetUrlRequestContext.<init>(CronetUrlRequestContext.java:251)
at org.chromium.net.impl.NativeCronetEngineBuilderImpl.build(NativeCronetEngineBuilderImpl.java:46)
at org.chromium.net.ExperimentalOptionsTranslatingCronetEngineBuilder.build(ExperimentalOptionsTranslatingCronetEngineBuilder.java:294)
at org.chromium.net.CronetEngine$Builder.build(CronetEngine.java:478)
at com.google.codelabs.cronet.MainActivity.initImageDownloader$lambda-0(MainActivity.kt:77)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.protobuf.GeneratedMessageLite" on path: DexPathList[[zip file "/data/app/~~o1iWWjwI7BoH_fpYpW7FUg==/com.google.codelabs.cronet-fTeI9AqrPCa-b7vp_qGfDw==/base.apk"],nativeLibraryDirectories=[/data/app/~~o1iWWjwI7BoH_fpYpW7FUg==/com.google.codelabs.cronet-fTeI9AqrPCa-b7vp_qGfDw==/lib/arm64, /system/lib64]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)

Any help to fix this error would be appreciated
Message has been deleted

heaoven

unread,
Jul 31, 2025, 12:11:48 PM7/31/25
to Chromium-dev, Arun Bhagavath
I have the same issue. Finally I fix it.
We need to add deps protobuf-javalite .
```
// https://mvnrepository.com/artifact/com.google.protobuf/protobuf-javalite
implementation("com.google.protobuf:protobuf-javalite:4.28.3")
```
Reply all
Reply to author
Forward
0 new messages