Переопределить onActivityResult nativescript - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь создать плагин Nativescript для входа с учетной записью Linkedin.В Android мне нужно изменить метод onActivityResult основного действия, и я попытался с помощью @JavaProxy переопределить основное действие, но я получаю следующую ошибку:

Exception in thread "main" java.io.IOException: File already exists. This may lead to undesired behavior. Please change the name of one of the extended classes.

Мой код:

@JavaProxy("com.tns.NativeScriptLinkedinActivity")
class Activity extends android.app.Activity {
   private _callbacks: AndroidActivityCallbacks;

   public onCreate(savedInstanceState: android.os.Bundle): void {
      if (!this._callbacks) {
        setActivityCallbacks(this);
      }

      this._callbacks.onCreate(this, savedInstanceState, super.onCreate);
   }

   public onSaveInstanceState(outState: android.os.Bundle): void {
       this._callbacks.onSaveInstanceState(this, outState, 
       super.onSaveInstanceState);
   }

   public onStart(): void {
       this._callbacks.onStart(this, super.onStart);
   }

   public onStop(): void {
        this._callbacks.onStop(this, super.onStop);
   }

   public onDestroy(): void {
       this._callbacks.onDestroy(this, super.onDestroy);
   }

   public onBackPressed(): void {
       this._callbacks.onBackPressed(this, super.onBackPressed);
   }

   public onRequestPermissionsResult(requestCode: number, permissions: Array<string>, grantResults: Array<number>): void {
       this._callbacks.onRequestPermissionsResult(this, requestCode, permissions, grantResults, undefined /*TODO: Enable if needed*/);
    }

    public onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void {
        super.onActivityResult(requestCode, resultCode, data);
        console.log("ON ACTIVITY RESULT");
        console.log(requestCode + " - " + resultCode);
        com.linkedin.platform.LISessionManager.getInstance(app.android.context).onActivityResult(this, requestCode, resultCode, data);
        this._callbacks.onActivityResult(this, requestCode, resultCode, data, super.onActivityResult);
     }

}

И я обновил свой AndroidManifest:

<application
        android:name="com.tns.NativeScriptApplication"
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

        <activity
            android:name="com.tns.NativeScriptLinkedinActivity"
            android:label="@string/title_activity_kimera"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@style/LaunchScreenTheme">

            <meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme" />

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.tns.ErrorReportActivity"/>
    </application>

Можете ли вы помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 31 января 2019

Если вы используете {N} 5.x или выше, вы должны расширить android.support.v7.app.AppCompatActivity вместо android.app.Activity.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...