Java 访问自定义本机模块中的AppCompative活动

Java 访问自定义本机模块中的AppCompative活动,java,android,react-native,react-native-android,Java,Android,React Native,React Native Android,目前正在使用Braintree Android SDK v3构建一个自定义本机模块,以用于react native。SDK初始化需要类型为AppCompatActivity或Fragment的参数。我很难找到传递该参数的方法,因为似乎不存在返回正确类型的方法 编译错误: this.mBraintreeFragment=BraintreeFragment.newInstance(getCurrentActivity(),令牌); ^ 方法BraintRefragment.newInstance(A

目前正在使用Braintree Android SDK v3构建一个自定义本机模块,以用于react native。SDK初始化需要类型为AppCompatActivity或Fragment的参数。我很难找到传递该参数的方法,因为似乎不存在返回正确类型的方法

编译错误:

this.mBraintreeFragment=BraintreeFragment.newInstance(getCurrentActivity(),令牌);
^
方法BraintRefragment.newInstance(AppCompatActivity,String)不适用
(参数不匹配;活动无法转换为AppCompatActivity)
方法BraintRefragment.newInstance(片段、字符串)不适用
(参数不匹配;活动无法转换为片段)
我已经试着换了

public类MainApplication扩展应用程序实现应用程序{

公共类MainApplication扩展了AppCompatActivity应用程序{
在MainApplication.java中,但这似乎无法解决问题,并导致其他一些错误

希望有人能帮忙

编辑:关于项目设置的澄清。

反应本机v0.60.5

档案:

java/com/my.app/MainActivity.java
java/com/my.app/MainApplication.java
java/com/my.app/braintree/BraintreePackage.java
java/com/my.app/braintree/BraintreeModule.java
MainActivity.java

package com.my.app;
//违约
导入com.facebook.react.ReactActivity;
//自定义添加
导入android.content.pm.PackageInfo;
导入android.content.pm.PackageManager;
导入android.os.Bundle;
导入com.facebook.react.ReactActivityDelegate;
公共类MainActivity扩展了ReactActivity{
/**
*返回从JavaScript注册的主组件的名称。
*这用于计划组件的渲染。
*/
@凌驾
受保护的字符串getMainComponentName(){
返回“appname”;
}
/**
*将内部版本号作为道具注入react中的根应用程序组件
*/
@凌驾
受保护的ReactActivityDelegate createReactActivityDelegate(){
返回新的ReactActivityDelegate(此,getMainComponentName()){
@凌驾
受保护的捆绑包getLaunchOptions(){
Bundle initialProps=getMyLaunchOptions();
返回初始值;
}
};
}
受保护的捆绑包getMyLaunchOptions(){
Bundle=新Bundle();
PackageInfo pInfo=null;
试一试{
pInfo=getPackageManager().getPackageInfo(getPackageName(),0);
int build=pInfo.versionCode;
bundle.putString(“build”,String.valueOf(build));
}捕获(PackageManager.NameNotFounde异常){
e、 printStackTrace();
}
返回包;
}
}
MainApplication.java

package com.my.app;
导入android.app.Application;
导入android.util.Log;
导入com.facebook.react.PackageList;
导入com.facebook.hermes.reactexecutor.hermesecutorFactory;
导入com.facebook.react.bridge.JavaScriptExecutorFactory;
导入com.facebook.react.react应用程序;
导入com.facebook.react.ReactNativeHost;
导入com.facebook.react.ReactPackage;
导入com.facebook.soloader.soloader;
导入java.util.List;
//原生脑树
导入com.my.app.braintree.BraintreePackage;
公共类MainApplication扩展应用程序实现ReactApplication{
private final ReactNativeHost mReactNativeHost=新的ReactNativeHost(此){
@凌驾
公共布尔getUseDeveloperSupport(){
返回BuildConfig.DEBUG;
}
@凌驾
受保护的列表getPackages(){
@抑制警告(“不必要的局部变量”)
List packages=new PackageList(this).getPackages();
//无法自动链接但可以在此处手动添加的包,例如:
//packages.add(新的MyReactNativePackage());
//自定义本地Braintree
packages.add(新的BraintreePackage());
退货包裹;
}
@凌驾
受保护的字符串getJSMainModuleName(){
返回“索引”;
}
};
@凌驾
公共ReactNativeHost getReactNativeHost(){
返回mReactNativeHost;
}
@凌驾
public void onCreate(){
super.onCreate();
init(这个,/*本机exopackage*/false);
}
}
BraintreePackage.java

package com.my.app.braintree;
导入com.facebook.react.ReactPackage;
导入com.facebook.react.bridge.NativeModule;
导入com.facebook.react.bridge.ReactApplicationContext;
导入com.facebook.react.uimanager.ViewManager;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
公共类BraintreePackage实现了ReactPackage{
@凌驾
公共列表CreateViewManager(ReactApplicationContext reactContext){
返回集合。emptyList();
}
@凌驾
公共列表createNativeModules(ReactApplicationContext reactContext){
列表模块=新的ArrayList();
modules.add(新的BraintreeModule(reactContext));
返回模块;
}
}
BraintRemoModule.java

package com.my.app.braintree;
导入com.facebook.react.bridge.ReactApplicationContext;
导入com.facebook.react.bridge.ReactContextBaseJavaModule;
导入com.facebook.react.bridge.ReactMethod;
导入com.facebook.react.bridge.Callback;
导入android.content.Context;
//脑树
导入com.braintreepayments.api.*;
导入com.braintreepayments.api.exceptions.*;
公共类BraintRemoModule扩展了ReactContextBaseJavaModule{
私有最终ReactApplicationContext reactContext;
私有字符串令牌;
私有上下文mActivityContext;
私人大脑碎片;
public BraintreeModule(ReactApplicationContext reactContext){
超级(反应上下文);
this.reactContext=reactContext;
}
@凌驾
公共字符串getName(){
返回“BraintTreemodule”;
}
公共字符串getToken(){
返回此.token;
}
公共void setToken(字符串令牌){
this.token=token;
}
//初始化