gpt4 book ai didi

android - 如何在 Nativescript 中使用 startActivityForResult

转载 作者:行者123 更新时间:2023-11-29 23:27:29 25 4
gpt4 key购买 nike

我用一个 extended activity在我的旧项目中,我想使用 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 平台更新到 v5.0.0 和将 android 库更新到 v28。

并从中更新代码

class MainActivity extends android.app.Activity {

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 的新手。

如何在扩展 Activity 中正确使用此功能?

我想得到这个答案。

但如果有其他解决方法也很好。

例如,我尝试使用旧代码返回

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


更新

代码来自https://docs.nativescript.org/core-concepts/android-runtime/advanced-topics/extend-application-activity#extending-activity

使用 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)

更新

my steps to creating the app

the code

最佳答案

android.support.v7.app.AppCompatActivity 扩展自 android.support.v4.app.FragmentActivity

所以如果你想使用 AppCompatActivity,你应该包括 v4 compat libraryv7 compat library

关于android - 如何在 Nativescript 中使用 startActivityForResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com