nextcloud / nextcloud/notes-android

java.lang.ClassNotFoundException: com.owncloud.android.lib.common.network.CertificateCombinedException

Open
#1,849 8 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Upstream :: SSO
Dominant language
Java
Stars
1.1k
Forks
168
Avg merge
1d 17h
Merged PRs (30d)
31

Description

Please use GitHub reactions 👍 to show that you are affected by the same issue. Please don't comment if you have no relevant information to add!

Describe the bug

During first start of the Notes app on Android (installed via F-Droid) I am prompted to select the nextcloud profile, then whether I accept the access to nextcloud from nextcloud notes and then I get an error. If I close the app and open it again, I end up with the same.

To Reproduce
Steps to reproduce the behavior:

  1. Open app
  2. Click 'Select account'
  3. Select account and press OK
  4. Allow Nextcloud Notes to access Nextcloud when being prompted
  5. Then the error pops up

Expected behavior

Connect to Nextcloud and display notes

Screenshots

Smartphone (please complete the following information):
see Stacktrace output

Server

  • Nextcloud version: 25.0.9
  • Nextcloud Notes version (server app): 4.8.1

Stacktrace

App Version: 4.1.0 RC1
App Version Code: 40010051
App Flavor: fdroid

Files App Version Code: 30250090 (PROD)

---

OS Version: 3.18.91-19497840-QB54396082(G930FXXU8EVG3)
OS API Level: 26
Device: herolte
Manufacturer: samsung
Model (and Product): SM-G930F (heroltexx)

---

java.lang.ClassNotFoundException: com.owncloud.android.lib.common.network.CertificateCombinedException
	at java.lang.Class.classForName(Native Method)
	at java.lang.Class.forName(Class.java:453)
	at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:629)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1616)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1354)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2003)
	at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:504)
	at java.lang.Throwable.readObject(Throwable.java:907)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1006)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1903)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1804)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1354)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:374)
	at com.nextcloud.android.sso.api.AidlNetworkRequest.deserializeObjectV2(AidlNetworkRequest.java:245)
	at com.nextcloud.android.sso.api.AidlNetworkRequest.performNetworkRequestV2(AidlNetworkRequest.java:183)
	at com.nextcloud.android.sso.api.NextcloudAPI.performNetworkRequestV2(NextcloudAPI.java:171)
	at com.nextcloud.android.sso.api.NextcloudAPI.lambda$performRequestObservableV2$0$com-nextcloud-android-sso-api-NextcloudAPI(NextcloudAPI.java:113)
	at com.nextcloud.android.sso.api.NextcloudAPI$$ExternalSyntheticLambda0.subscribe(Unknown Source:6)
	at io.reactivex.internal.operators.observable.ObservableFromPublisher.subscribeActual(ObservableFromPublisher.java:31)
	at io.reactivex.Observable.subscribe(Observable.java:12284)
	at io.reactivex.internal.operators.observable.ObservableSingleMaybe.subscribeActual(ObservableSingleMaybe.java:31)
	at io.reactivex.Maybe.subscribe(Maybe.java:4290)
	at io.reactivex.Maybe.blockingGet(Maybe.java:2320)
	at io.reactivex.Observable.blockingSingle(Observable.java:5381)
	at it.niedermann.owncloud.notes.persistence.CapabilitiesClient.getCapabilities(CapabilitiesClient.java:32)
	at it.niedermann.owncloud.notes.importaccount.ImportAccountActivity.lambda$onActivityResult$5$it-niedermann-owncloud-notes-importaccount-ImportAccountActivity(ImportAccountActivity.java:96)
	at it.niedermann.owncloud.notes.importaccount.ImportAccountActivity$$ExternalSyntheticLambda2.run(Unknown Source:4)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
	at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.owncloud.android.lib.common.network.CertificateCombinedException" on path: DexPathList[[zip file "/data/app/it.niedermann.owncloud.notes-a7VdT6L0DDV5OTaoSHAtMg==/base.apk"],nativeLibraryDirectories=[/data/app/it.niedermann.owncloud.notes-a7VdT6L0DDV5OTaoSHAtMg==/lib/arm64, /system/lib64, /system/vendor/lib64]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
	... 35 more

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at CapabilitiesClient.java:32 and ImportAccountActivity.java:96, then trace the AidlNetworkRequest.deserializeObjectV2 stack frames shown in the report. Reproduce the first-start account flow with the F-Droid build and inspect the reported missing exception class. Done means the app completes account setup and displays notes without this ClassNotFoundException.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
api, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.