簡體   English   中英

如何在使用 web3j 創建新錢包文件時修復“供應商 bc 沒有這樣的算法 ecdsa”

[英]how to fix 'no such algorithm ecdsa for provider bc' while creating new wallet file using web3j

我在最新版本的 android studio 上執行此操作,最低 SDK 版本為 15 個依賴項:

> implementation fileTree(dir: 'libs', include: ['*.jar'])
> implementation 'com.android.support:appcompat-v7:28.0.0'
> implementation 'com.android.support.constraint:constraintlayout:1.1.3'
> testImplementation 'junit:junit:4.12' androidTestImplementation
> 'com.android.support.test:runner:1.0.2' androidTestImplementation
> 'com.android.support.test.espresso:espresso-core:3.0.2' implementation
> 'org.web3j:core:4.2.0-android' implementation
> 'com.android.support:multidex:1.0.3' implementation
> 'com.squareup.okhttp3:okhttp:3.14.0' implementation
> "io.reactivex.rxjava2:rxjava:2.2.2"

我的代碼是:

public String createWallet() throws Exception {
        String path = Environment.getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS).getPath().toString();
        String fileName = WalletUtils.generateNewWalletFile("password", new File(path));
        return path + fileName;
}

你可以在這里查看!

@serso 提供了一個函數“setupBouncyCastle()”,您必須將其放入類中並在 onCreat 中調用它。 這替換了 Android 版本的充氣城堡! 就像他說的。 ^^

如果您正在准備發布版本, minifyEnabled 為 true 並面臨此異常:

 java.security.NoSuchAlgorithmException: no such algorithm: ECDSA for provider BC

將這些行添加到 pro-gurd

-dontwarn java8.util.**
-dontwarn jnr.posix.**
-dontwarn com.kenai.**

#-keep class org.bouncycastle.**
-dontwarn org.bouncycastle.jce.provider.X509LDAPCertStoreSpi
-dontwarn org.bouncycastle.x509.util.LDAPStoreHelper

-keepclassmembers class org.web3j.protocol.** { *; }
-keepclassmembers class org.web3j.crypto.* { *; }

-keep class * extends org.web3j.abi.TypeReference
-keep class * extends org.web3j.abi.datatypes.Type

#-dontwarn java.lang.SafeVarargs
-dontwarn org.slf4j.**

感謝Mimo Saha

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM