关于安卓Facebook接入时的坑

接入facebook时 设置

com.facebook.sdk.ApplicationId 不正确会报如下错误:

Caused by: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
        at com.facebook.internal.Validate.sdkInitialized(Validate.java:146)
        at com.facebook.login.LoginManager.<init>(LoginManager.java:80)
        at com.facebook.login.LoginManager.getInstance(LoginManager.java:93)

试了发现,如果直接在清单文件中直接设置一定会报错,必须把他写在strings.xml就不报错了,或者在写id时加上fb前缀也可以,正确写法:

1、

清单文件:

<meta-data android:name="com.facebook.sdk.ApplicationId"
    android:value="@string/facebook_app_id"/>

strings.xml:

<string name="facebook_app_id">xxxxxxx</string>

2、

清单文件:(fb+appid)比如fb123456

<meta-data android:name="com.facebook.sdk.ApplicationId"
    android:value="fb123456"/>

3、清单文件:

<meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="${FB_APP_ID}"/>

build.gradle:(fb+appid) 比如fb123456

defaultConfig {
    manifestPlaceholders = [FB_APP_ID  : "fb123456",]
}

注意:后面两种写法必须加fb开头(当然你换成abc也行,似乎要字母开头就行),未知原因

要将React应用程序接入支付宝沙箱,您需要完成以下步骤: 1. 首先,按照支付宝提供的文档完成支付宝的申请。您可以参考支付宝官方文档:https://opendocs.alipay.com/support/01razc。 2. 在您的React Native项目的`android/app/build.gradle`文件中添加以下代码: ```groovy dependencies { // 其他依赖项... compile fileTree(dir: "libs", include: ["*.aar"]) compile files('libs/alipaysdk-15.8.06.211122170115.aar') } ``` 3. 创建一个名为`ZhifubaoPackage`的类,该类实现了`ReactPackage`接口,***```java import com.facebook.react.ReactPackage; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ZhifubaoPackage implements ReactPackage { @Override public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { return Collections.emptyList(); } @Override public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { List<NativeModule> modules = new ArrayList<>(); modules.add(new AlipayModule(reactContext)); return modules; } } ``` 4. 在您的React Native应用的主`MainApplication.java`文件中注册`ZhifubaoPackage`。您可以在`getPackages()`方法中添加以下代码: ```java @Override protected List<ReactPackage> getPackages() { @SuppressWarnings("UnnecessaryLocalVariable") List<ReactPackage> packages = new PackageList(this).getPackages(); packages.add(new ZhifubaoPackage()); // 添加这一行 return packages; } ``` 5. 接下来,您需要创建一个名为`AlipayModule`的模块类,该类继承自`ReactContextBaseJavaModule`。您可以在这个模块类中实现与支付宝相关的功能。根据您的需求,您可以添加支付、查询订单等相关方法。 完成以上步骤后,您的React Native应用就已成功接入支付宝沙箱。请根据您的具体需求进一步实现相关功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值