Я использую расширенное действие в моем старом проекте, и я хочу использовать startActivityForResult () в функции public onCreate ().
Однако я не знаю, как исправить ошибку.
System.err: Caused by: java.lang.Exception: Failed resolving method startActivityForResult on class android.support.v4.app.FragmentActivity
код был в порядке.
activity.startActivityForResult( intent, this.MY_PERMISSION_REQUEST );
приведенный выше код был в функции public onCreate ().
но когда я обновил все пакеты npm, включая обновление платформы Android до версии 5.0.0 и библиотеки Android до версии 28.
и обновите код из
class MainActivity extends android.app.Activity {
to
class MainActivity extends android.support.v7.app.AppCompatActivity {
старый код просто больше не работает.
System.err: Caused by: java.lang.Exception: Failed resolving method startActivityForResult on class android.support.v4.app.FragmentActivity
Думаю, это связано с startActivityForResult ().
Я новичок в nativescript и android.
Как правильно использовать эту функцию в расширенных занятиях?
Я хочу получить этот ответ.
Но если есть другие обходные пути, тоже будет хорошо.
Например, я пробовал использовать старый код обратно
class MainActivity extends android.app.Activity {
вышеуказанный, но не работает.
System.err: com.tns.NativeScriptException:
System.err: Calling js method onViewAttachedToWindow failed
System.err:
System.err: TypeError: this._context.getSupportFragmentManager is not a function
System.err: File: "file:///data/data/com.testapp/files/app/tns_modules/tns-core-modules/ui/core/view/view.js, line: 190, column: 46
System.err:
System.err: StackTrace:
System.err: Frame: function:'View._getRootFragmentManager', file:'file:///data/data/com.testapp/files/app/tns_modules/tns-core-modules/ui/core/view/view.js', line: 190, column: 47
System.err: Frame: function:'View._getFragmentManager', file:'file:///data/data/com.testapp/files/app/tns_modules/tns-core-modules/ui/core/view/view.js', line: 215, column: 32
System.err: Frame: function:'Frame._processNextNavigationEntry', file:'file:///data/data/com.testapp/files/app/tns_modules/tns-core-modules/ui/frame/frame.js', line: 134, column: 28
System.err: Frame: function:'Frame._onAttachedToWindow', file:'file:///data/data/com.testapp/files/app/tns_modules/tns-core-modules/ui/frame/frame.js', line: 118, column: 14
System.err: Frame: function:'AttachListener.onViewAttachedToWindow', file:'file:///data/data/com.testapp/files/app/tns_modules/tns-core-modules/ui/frame/frame.js', line: 35, column: 27
System.err:
Если есть какие-либо методы, чтобы снова запустить код startActivityForResult, все будет в порядке.
Мой AndroidManifest.xml содержит
android:minSdkVersion="21"
android:targetSdkVersion="23"
Означает ли это, что все устройства> = 21 будут приняты,
android.support.v7.app.AppCompatActivity
в документе показано добавлено в версии 25.1.0
мне тоже нужно будет обновить свой AndroidManifest.xml?
Обновить
используя TYPESCRIPT
@JavaProxy("org.myApp.MainActivity")
class Activity extends android.support.v7.app.AppCompatActivity {
private _callbacks: AndroidActivityCallbacks;
public readonly MY_PERMISSION_REQUEST = 100;
public onCreate(savedInstanceState: android.os.Bundle): void {
if (!this._callbacks) {
setActivityCallbacks(this);
}
this._callbacks.onCreate(this, savedInstanceState, super.onCreate);
let intent: android.content.Intent = new android.content.Intent( ( <any> android.provider.Settings ).ACTION_HOME_SETTINGS );
intent.setData( Uri.parse( "package:" + context.getPackageName() ) );
let activity = app.android.foregroundActivity || app.android.startActivity;
activity.startActivityForResult( intent, this.MY_PERMISSION_REQUEST );
}
почти все то же самое, но добавьте код для startActivityForResult.
если удалить строку startActivityForResult, все снова будет работать нормально.
Обновить ###
та же ошибка при использовании this .startActivityForResult ()
System.err: Calling js method onCreate failed
System.err:
System.err: Error: java.lang.Exception: Failed resolving method startActivityForResult on class android.support.v4.app.FragmentActivity
System.err: com.tns.Runtime.resolveMethodOverload(Runtime.java:1075)
System.err: com.tns.Runtime.callJSMethodNative(Native Method)
System.err: com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1116)
System.err: com.tns.Runtime.callJSMethodImpl(Runtime.java:996)
System.err: com.tns.Runtime.callJSMethod(Runtime.java:983)
System.err: com.tns.Runtime.callJSMethod(Runtime.java:967)
System.err: com.tns.Runtime.callJSMethod(Runtime.java:959)
System.err: com.testapp.MainActivity.onCreate(MainActivity.java:18)
System.err: android.app.Activity.performCreate(Activity.java:7009)
System.err: android.app.Activity.performCreate(Activity.java:7000)