GVKun编程网logo

android – NoSuchMethod:isDestroyed()

33

最近很多小伙伴都在问android–NoSuchMethod:isDestroyed()这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展AndroidcoreLibraryDesu

最近很多小伙伴都在问android – NoSuchMethod:isDestroyed()这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Android coreLibraryDesugaringEnabled,连接测试崩溃,NoSuchMethodError、android NoSuchMethodError getDrawable、Android studio App引擎数据存储集成 – NoSuchMethodError、Android studio java.lang.NoSuchMethodError: 没有静态方法 encodeBase64URLSafeString([B)Ljava/lang/String;等相关知识,下面开始了哦!

本文目录一览:

android – NoSuchMethod:isDestroyed()

android – NoSuchMethod:isDestroyed()

我只是在一个Activity上调用isDestroyed(),我得到了这个ex:
04-09 03:08:12.692: E/AndroidRuntime(13234): FATAL EXCEPTION: main
04-09 03:08:12.692: E/AndroidRuntime(13234): java.lang.NoSuchMethodError: android.app.Activity.isDestroyed
04-09 03:08:12.692: E/AndroidRuntime(13234):    at hu.illion.beentaps.util.ActivityKiller.killAllPastActivites(ActivityKiller.java:16)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at hu.illion.beentaps.MapBeenActivity$1.onClick(MapBeenActivity.java:75)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at android.view.View.performClick(View.java:4084)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at android.view.View$PerformClick.run(View.java:16966)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at android.os.Handler.handleCallback(Handler.java:615)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at android.os.Looper.loop(Looper.java:137)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at android.app.ActivityThread.main(ActivityThread.java:4931)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at java.lang.reflect.Method.invokeNative(Native Method)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at java.lang.reflect.Method.invoke(Method.java:511)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
04-09 03:08:12.692: E/AndroidRuntime(13234):    at dalvik.system.NativeStart.main(Native Method)

我在列表中获得了活动,我想迭代它并完成所有这些活动:

for (Activity act : Variables.pastActivites) {
        try {

            Log.i("Killing: ",act.getLocalClassName());
            if (!act.isDestroyed()) {
                act.overridePendingTransition(0,0);
                act.finish();
            }
            else
            {
                Variables.pastActivites.remove(act);
            }

        } catch (Exception ex) {
            Log.i("KillerAct: ",ex.toString());
        }

    }

我甚至可以阅读官方文档,其中有一个名为isDestroyed()的函数.
现在怎么办?

解决方法

Activity.isDestroyed()从API级别17开始可用.如果您的应用程序设置是针对较低的API,则会出现此异常.

Android coreLibraryDesugaringEnabled,连接测试崩溃,NoSuchMethodError

Android coreLibraryDesugaringEnabled,连接测试崩溃,NoSuchMethodError

如何解决Android coreLibraryDesugaringEnabled,连接测试崩溃,NoSuchMethodError?

我向我们的应用添加了 coreLibraryDesugaringEnabled,它可以正常运行应用。

  compileOptions {
    coreLibraryDesugaringEnabled true
  }

  coreLibraryDesugaring ''com.android.tools:desugar_jdk_libs:1.0.9''

但是,当我运行连接测试时,它崩溃了,Stream 类上没有此类方法错误:

16:03:56.426 11998 12041 E AndroidRuntime: FATAL EXCEPTION: com....
16:03:56.426 11998 12041 E AndroidRuntime: Process: ...
16:03:56.426 11998 12041 E AndroidRuntime: java.lang.NoSuchMethodError: No static method e([Ljava/lang/Object;)Lj$/util/stream/Stream; in class Lj$/util/n; or its super classes (declaration of ''j$.util.n'' appears in /data/app/com....-qU6nwXthxze4O_9rcf1hGg==/base.apk!classes2.dex)
16:03:56.426 11998 12041 E AndroidRuntime:  at j$.util.stream.Stream$-CC.of(:1000)
16:03:56.426 11998 12041 E AndroidRuntime:  at ...

我发现了一些模糊的参考,这可能是因为在调用 Multidex.install 之前引用了该类?我首先将该类引用为静态初始化程序,因此很早就可以访问它。不确定这是否是一条红鲱鱼,但我想我会提到它。

如果有帮助,则使用 AndroidJUnit4ClassRunner 运行测试。

编辑:我发现了一个模糊的参考,只有一篇文章指出仪器测试不支持:

请注意在 Android Studio 4.0 中使用这些库去糖类型 不支持插桩测试。

https://medium.com/androiddevelopers/support-for-newer-java-language-apis-bca79fc8ef65

但即使是该功能中来自 Google 的嵌入视频也没有说明这一点。也不确定 AS 版本与它有什么关系。也许他们指的是 AGP。​​

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

android NoSuchMethodError getDrawable

android NoSuchMethodError getDrawable

–android NoSuchMethodError getDrawable–
测试手机MIUI4
报错代码如下:

draw = ctx.getDrawable(R.drawable.more_up);

修改后不报错代码如下:

draw = ctx.getResources().getDrawable(R.drawable.more_up);

问题解决了,具体原因没有及时查看,有知道达人可以解惑

Android studio App引擎数据存储集成 – NoSuchMethodError

Android studio App引擎数据存储集成 – NoSuchMethodError

我已经使用Google端点创建了一个方法并将其公开.我想要的只是从Google DataStore保存和检索数据.

当我尝试使用API​​ Explorer进行测试时,出现以下错误 –

java.lang.NoSuchMethodError

我已附上以下代码

@ApiMethod (name ="mTest")
    public void mTest(@com.google.api.server.spi.config.Named("UName") String UName) throws IOException {

        DatastoreService datastoreService;
        datastoreService = DatastoreServiceFactory.getDatastoreService();
        Transaction tx=datastoreService.beginTransaction();
        try {
            Key userKey = KeyFactory.createKey("USERS_PK",UName);
            Entity userEntity=new Entity("M_USERS",userKey);
            userEntity.setProperty("TestColumn","TestColumnValue");
            datastoreService.put(userEntity);
            tx.commit();
        }finally {
            if (tx.isActive()){
                tx.rollback();
            }
        }
}

在datastoreService.put(userEntity)上遇到错误;

请在下面找到堆栈跟踪:

Jun 29,2014 5:12:20 PM com.google.api.server.spi.SystemService invokeServiceMethod
INFO: cause={0}

java.lang.NoSuchMethodError: com.google.appengine.api.datastore.Key.getAppIdNamespace()Lcom/google/appengine/api/datastore/AppIdNamespace;
    at com.google.appengine.api.datastore.KeyTranslator.convertToPb(KeyTranslator.java:49)
    at com.google.appengine.api.datastore.EntityTranslator.convertToPb(EntityTranslator.java:50)
    at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl$4.toPb(AsyncDatastoreServiceImpl.java:203)
    at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl$4.toPb(AsyncDatastoreServiceImpl.java:180)
    at com.google.appengine.api.datastore.Batcher$BatchIterator.<init>(Batcher.java:177)
    at com.google.appengine.api.datastore.Batcher$2.<init>(Batcher.java:312)
    at com.google.appengine.api.datastore.Batcher.getBatches(Batcher.java:312)
    at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl.dobatchPut(AsyncDatastoreServiceImpl.java:536)
    at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl.put(AsyncDatastoreServiceImpl.java:490)
    at com.google.appengine.api.datastore.DatastoreServiceImpl$2.runInternal(DatastoreServiceImpl.java:95)
    at com.google.appengine.api.datastore.DatastoreServiceImpl$2.runInternal(DatastoreServiceImpl.java:92)
    at com.google.appengine.api.datastore.TransactionRunner.runInTransaction(TransactionRunner.java:29)
    at com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java:92)
    at com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java:81)
    at GetMedSoonAppEngineProject.GMS_UserRegistrationEndpoint.mTest(GMS_UserRegistrationEndpoint.java:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
    at com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:359)
    at com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:124)
    at com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:82)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:127)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:491)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.httpconnection.handleRequest(httpconnection.java:542)
    at org.mortbay.jetty.httpconnection$RequestHandler.content(httpconnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    at org.mortbay.jetty.httpconnection.handle(httpconnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Jun 29,2014 5:12:20 PM com.google.api.server.spi.SystemService invokeServiceMethod
SEVERE: com.google.appengine.api.datastore.Key.getAppIdNamespace()Lcom/google/appengine/api/datastore/AppIdNamespace;
java.lang.NoSuchMethodError: com.google.appengine.api.datastore.Key.getAppIdNamespace()Lcom/google/appengine/api/datastore/AppIdNamespace;
    at com.google.appengine.api.datastore.KeyTranslator.convertToPb(KeyTranslator.java:49)
    at com.google.appengine.api.datastore.EntityTranslator.convertToPb(EntityTranslator.java:50)
    at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl$4.toPb(AsyncDatastoreServiceImpl.java:203)
    at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl$4.toPb(AsyncDatastoreServiceImpl.java:180)
    at com.google.appengine.api.datastore.Batcher$BatchIterator.<init>(Batcher.java:177)
    at com.google.appengine.api.datastore.Batcher$2.<init>(Batcher.java:312)
    at com.google.appengine.api.datastore.Batcher.getBatches(Batcher.java:312)
    at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl.dobatchPut(AsyncDatastoreServiceImpl.java:536)
    at com.google.appengine.api.datastore.AsyncDatastoreServiceImpl.put(AsyncDatastoreServiceImpl.java:490)
    at com.google.appengine.api.datastore.DatastoreServiceImpl$2.runInternal(DatastoreServiceImpl.java:95)
    at com.google.appengine.api.datastore.DatastoreServiceImpl$2.runInternal(DatastoreServiceImpl.java:92)
    at com.google.appengine.api.datastore.TransactionRunner.runInTransaction(TransactionRunner.java:29)
    at com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java:92)
    at com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java:81)
    at GetMedSoonAppEngineProject.GMS_UserRegistrationEndpoint.mTest(GMS_UserRegistrationEndpoint.java:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
    at com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:359)
    at com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:124)
    at com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:82)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:127)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:491)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.httpconnection.handleRequest(httpconnection.java:542)
    at org.mortbay.jetty.httpconnection$RequestHandler.content(httpconnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    at org.mortbay.jetty.httpconnection.handle(httpconnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

任何帮助表示赞赏!我坚持了一个月,我无法找到解决方案.

IDE:Android Studio 0.61
操作系统:Windows 8

解决方法

将后端的build.gradle文件中的Objectify库版本更改为4.0b到5.0.3

这可能听起来无关紧要,但是客体化4.0b库具有相同的包类名,这些类包含在com.google.appengine.api.datastore.Key等appengine sdk中.

当你部署app后端时,appengine类被objectify类覆盖,因此当你尝试调用某个方法时,它会抛出错误.

这在客观化5.0中得到了解决.

Android studio java.lang.NoSuchMethodError: 没有静态方法 encodeBase64URLSafeString([B)Ljava/lang/String;

Android studio java.lang.NoSuchMethodError: 没有静态方法 encodeBase64URLSafeString([B)Ljava/lang/String;

如何解决Android studio java.lang.NoSuchMethodError: 没有静态方法 encodeBase64URLSafeString([B)Ljava/lang/String;?

我正在尝试使用 Upbit API 调用我的钱包信息。

示例代码来自https://docs.upbit.com/reference#%EC%9E%90%EC%82%B0-%EC%A1%B0%ED%9A%8C

这是我的代码。

(删除了我的 API 访问密钥和秘密密钥)


package gachon.mpclass.apitest2;

import androidx.appcompat.app.AppCompatActivity;
import java.io.IOException;
import java.util.UUID;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;


import android.util.Base64;
import org.apache.http.httpentity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;


import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        NetworkThread thread = new NetworkThread();
        thread.start();
    }


    class NetworkThread extends Thread {

        public void run() {


            try {

                String accessKey = ("api key value");
                String secretKey = ("api key value");
                String serverUrl = ("https://api.upbit.com");


                Algorithm algorithm = Algorithm.HMAC256(secretKey);
                String jwtToken = JWT.create()
                        .withClaim("access_key",accessKey)
                        .withClaim("nonce",UUID.randomUUID().toString())
                        .sign(algorithm);

                String authenticationToken = "Bearer " + jwtToken;
                HttpClient client = HttpClientBuilder.create().build();
                HttpGet request = new HttpGet(serverUrl + "/v1/accounts");
                request.setHeader("Content-Type","application/json");
                request.addHeader("Authorization",authenticationToken);

                HttpResponse response = client.execute(request);
                httpentity entity = response.getEntity();


                System.out.println(EntityUtils.toString(entity,"UTF-8"));

            } catch (IOException e) {
                e.printstacktrace();
            }
        }

    }


}

SDK 版本为 30 和依赖项是

dependencies {

    implementation ''androidx.appcompat:appcompat:1.2.0''
    implementation ''com.google.android.material:material:1.3.0''
    implementation ''androidx.constraintlayout:constraintlayout:2.0.4''
    implementation filetree(dir: ''C:\\Users\\admin\\AndroidStudioProjects\\APITest2\\app\\libs'',include: [''*.aar'',''*.jar''],exclude: [])
    testImplementation ''junit:junit:4.+''
    androidTestImplementation ''androidx.test.ext:junit:1.1.2''
    androidTestImplementation ''androidx.test.espresso:espresso-core:3.3.0''
    compileOnly ''org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2''
    implementation group: ''org.apache.httpcomponents'',name: ''httpclient-android'',version: ''4.3.5''
    implementation ''com.fasterxml.jackson.core:jackson-databind:2.3.2''
    implementation group: ''commons-codec'',name: ''commons-codec'',version: ''1.10''
    implementation ''com.auth0.android:jwtdecode:2.0.0''
    api ''io.jsonwebtoken:jjwt-api:0.11.2''
    runtimeOnly ''io.jsonwebtoken:jjwt-impl:0.11.2''
    runtimeOnly(''io.jsonwebtoken:jjwt-orgjson:0.11.2'') { exclude group: ''org.json'',module: ''json''}
    runtimeOnly ''org.bouncycastle:bcprov-jdk15on:1.60''
    implementation ''com.android.support:multidex:1.0.3''

}

错误是

E/AndroidRuntime: FATAL EXCEPTION: Thread-2
    Process: gachon.mpclass.apitest2,PID: 21107
    java.lang.NoSuchMethodError: No static method encodeBase64URLSafeString([B)Ljava/lang/String; in class Lorg/apache/commons/codec/binary/Base64; or its super classes (declaration of ''org.apache.commons.codec.binary.Base64'' appears in /system/framework/org.apache.http.legacy.jar)
        at com.auth0.jwt.JWTCreator.sign(JWTCreator.java:283)
        at com.auth0.jwt.JWTCreator.access$100(JWTCreator.java:23)
        at com.auth0.jwt.JWTCreator$Builder.sign(JWTCreator.java:264)
        at gachon.mpclass.apitest2.MainActivity$NetworkThread.run(MainActivity.java:48)

我尝试了很多库和依赖项,但仍然出现相同的错误。 我应该更改整个代码还是有任何工作依赖项?

解决方法

这个错误通常发生在类路径上的 jar 版本错误时,在这种情况下,可能是应用程序正在寻找后续 jar /system/framework/org.apache.http.legacy.jar 中的 Base64 类。看看这个提交 https://github.com/auth0/java-jwt/commit/7dea6ac54d5b5b8822a9f3ee41cc4666e250cc27#diff-66fdd511fc2a34e115ac3e635c97eb82b89c8b64e26ea09247712b9efa5e62f7

查看 auth0.jwt 项目,您可以看到在 JWTCreator.sign() 方法中调用 Base64.encodeBase64URLSafeString(byte []) 方法的位置,可能会抛出错误,因为类路径上的 Base64 类版本确实如此不包含该功能。 如果您发布整个 build.gradle 文件会很有帮助。

我们今天的关于android – NoSuchMethod:isDestroyed()的分享就到这里,谢谢您的阅读,如果想了解更多关于Android coreLibraryDesugaringEnabled,连接测试崩溃,NoSuchMethodError、android NoSuchMethodError getDrawable、Android studio App引擎数据存储集成 – NoSuchMethodError、Android studio java.lang.NoSuchMethodError: 没有静态方法 encodeBase64URLSafeString([B)Ljava/lang/String;的相关信息,可以在本站进行搜索。

本文标签: