无法在发布apk的android studio中登录linkedin?

无法在发布apk的android studio中登录linkedin?,android,linkedin,release,Android,Linkedin,Release,我只是按照“”将链接sdk集成到我的应用程序中。 我在应用程序中执行的步骤,例如 下载适用于手机的linkedin库 将其作为库导入到我的应用程序中 获取密钥散列码 在linkedin开发者控制台内创建应用程序 配置的包名称和包哈希 之后,我的应用程序一切正常。这意味着我可以从linkedin(可调试的案例)访问配置文件详细信息。但问题是,当我构建发布的apk时,我无法登录 在linkedin开发者应用程序中添加了发布密钥。对于mac,我只是使用下面的命令在终端中获取释放密钥 keytool -

我只是按照“”将链接sdk集成到我的应用程序中。 我在应用程序中执行的步骤,例如

  • 下载适用于手机的linkedin库
  • 将其作为库导入到我的应用程序中
  • 获取密钥散列码
  • 在linkedin开发者控制台内创建应用程序
  • 配置的包名称和包哈希
  • 之后,我的应用程序一切正常。这意味着我可以从linkedin(可调试的案例)访问配置文件详细信息。但问题是,当我构建发布的apk时,我无法登录

    在linkedin开发者应用程序中添加了发布密钥。对于mac,我只是使用下面的命令在终端中获取释放密钥

    keytool -exportcert -keystore MY_RELEASE_KEY_PATH -alias MY_RELEASE_KEY_ALIAS | openssl sha1 -binary | openssl base64
    
    这是我的
    活动
    代码:

    public void login(View view) {
            LISessionManager.getInstance(getApplicationContext())
                    .init(this, buildScope(), new AuthListener() {
                        @Override
                        public void onAuthSuccess() {
                            APIHelper apiHelper = APIHelper.getInstance(getApplicationContext());
               apiHelper.getRequest(MainActivity.this, topCardUrl, new ApiListener() {
                    @Override                         
    
                    public void onApiSuccess(ApiResponse s) {
    
                     Log.e(TAG, "Profile json" + s.getResponseDataAsJson());
                     Log.e(TAG, "Profile String" + s.getResponseDataAsString());
    
                       try {
                         Log.e(TAG, "Profile emailAddress" + s.getResponseDataAsJson().get("emailAddress").toString());
                         Log.e(TAG, "Profile formattedName" + s.getResponseDataAsJson().get("formattedName").toString());
    
                         txtFirstName.setText(s.getResponseDataAsJson().get("emailAddress").toString());
                         txtLastName.setText(s.getResponseDataAsJson().get("formattedName").toString()); 
    
                         Picasso.with(MainActivity.this).load(s.getResponseDataAsJson().getString("pictureUrl"))
                                .into(imgProfilePic);
    
                            }catch (Exception e){
    
                            }
    
                  }
    
                    @Override 
    
                    public void onApiError(LIApiError error) {
                                //((TextView) findViewById(R.id.response)).setText(error.toString());                            Toast.makeText(getApplicationContext(), "Profile failed " + error.toString(),
                                        Toast.LENGTH_LONG).show();
                            }
                        });
    
                    }
    
    
                        @Override
                        public void onAuthError(LIAuthError error) {
                            Toast.makeText(getApplicationContext(), "failed " + error.toString(),
                                    Toast.LENGTH_LONG).show();
    
                        }
                    }, true);
        }
    
        private static Scope buildScope() {
            return Scope.build(Scope.R_BASICPROFILE, Scope.R_EMAILADDRESS);
        }
    
        @Override
        protected void onActivityResult(int requestCode,
                                        int resultCode, Intent data) {
    
            LISessionManager.getInstance(getApplicationContext())
                    .onActivityResult(this,
                            requestCode, resultCode, data);
        }
    
    每次我在我的应用程序中单击
    signin with linkedin
    按钮时出现以下错误

    Error={
    "errorCode": "UNKNOWN_ERROR"
        }
    

    将keystore.jks文件附加到您的项目中(如果您使用的是android studio),请遵循并回答问题

    然后根据给定的代码生成密钥散列

    private void genertaeHashKey() {
            Log.d("DEBUG", "Generating Hash Key");
            try
            {
                PackageInfo info = getPackageManager().getPackageInfo(
                        getPackageName(), PackageManager.GET_SIGNATURES);
                for (Signature signature : info.signatures) {
                    MessageDigest md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());
                    Log.e("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
                }
    
            } catch (PackageManager.NameNotFoundException e) {
                Log.e("KeyHash:", "" + e);
                Toast.makeText(SplashScreenActivity.this, e.toString(), Toast.LENGTH_SHORT).show();
            } catch (NoSuchAlgorithmException e)
    
            {
                Log.e("KeyHash:", "" + e);
            }
        }
    
    然后在linkedin开发者控制台上注册密钥哈希。
    它确实对我有用。希望它能对您有所帮助。

    您是否已将Build Variants debug更改为release

    我也面临同样的问题。如果您解决了此问题,请与我们共享此问题。请执行以下步骤:keytool-exportcert-keystore MY_RELEASE_KEY_PATH-别名MY_RELEASE_KEY_alias | openssl sha1-binary | openssl base64