React Native:错误:找不到资源android:style/TextAppearance.Material.Widget.Button.Borderless.Colored [英] React Native: error: resource android:style/TextAppearance.Material.Widget.Button.Borderless.Colored not found

查看:27
本文介绍了React Native:错误:找不到资源android:style/TextAppearance.Material.Widget.Button.Borderless.Colored的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为我的 React Native Android 项目获取 Facebook 登录,当我尝试使用 react-native run-android 构建它时,我收到此错误.

I am trying to get Facebook Login for my React Native Android project and when I try to build it with react-native run-android I am getting this error.

起初我认为这是我的 Gradle 版本的问题,因为 React Native 安装了 Gradle 2.14,后来我升级到了 Gradle 4.4.

I thought at first it was an issue with my Gradle version as React Native comes with Gradle 2.14 installed and I since upgraded to Gradle 4.4.

我多次返回 Facebook 安装指南,但仍然遇到此错误.我还三重检查了我的代码,以确保我没有使用任何错误的字体/fontWeight/fontStyle.我唯一能想到的是来自标准组件的 Facebook 按钮在那里有不受支持的样式?我不确定.

I went back through the Facebook installation guide multiple times and I am still getting this error. I also triple checked my code to make sure I am not using any bad font/fontWeight/fontStyle. The only thing I can think of is the Facebook button that comes from the standard component has unsupported styles in there? I am not sure.

任何帮助将不胜感激.我在这方面待的时间比我想承认的要长!

Any help would be greatly appreciated. I've been at this longer than I want to admit!

MainActivity.java 文件

MainActivity.java file

package com.myproj;

import android.content.Intent;
import com.facebook.react.ReactActivity;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
import com.facebook.FacebookSdk;

public class MainActivity extends ReactActivity {

    /**
     * Returns the name of the main component registered from JavaScript.
     * This is used to schedule rendering of the component.
     */
    @Override
    protected String getMainComponentName() {
        return "myproj";
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data);
    }
}

MainApplication.java 文件

MainApplication.java file

package com.myproj;

import android.app.Application;

import com.facebook.react.ReactApplication;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.facebook.CallbackManager;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;





import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

   private static CallbackManager mCallbackManager = CallbackManager.Factory.create();

   protected static CallbackManager getCallbackManager() {
     return mCallbackManager;
   }

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }


    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
          new FBSDKPackage(mCallbackManager)
      );
    }

    @Override
    protected String getJSMainModuleName() {
      return "index";
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    AppEventsLogger.activateApp(this);

  }

}

myProj/android/build.gradle 文件

myProj/android/build.gradle file

// Top-level build file where you can add configuration options common to all sub-projects/modules.



buildscript {
    repositories {
        jcenter()


    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }

    }
}

我收到的错误:

> Configure project :app 
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation'.
It will be removed at the end of 2018

> Configure project :react-native-fbsdk 
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation'.
It will be removed at the end of 2018
WARNING: The specified Android SDK Build Tools version (26.0.2) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.0.
Android SDK Build Tools 27.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '26.0.2'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

error: resource android:style/TextAppearance.Material.Widget.Button.Borderless.Colored not found.
error: resource android:style/TextAppearance.Material.Widget.Button.Colored not found.
/Users/me/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.2.aar/a1a4a045a3ea2f70ae16170c81e2001d/res/values-v26/values-v26.xml:9:5-12:13: AAPT: error: resource android:attr/colorError not found.

/Users/me/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.2.aar/a1a4a045a3ea2f70ae16170c81e2001d/res/values-v26/values-v26.xml:13:5-16:13: AAPT: error: resource android:attr/colorError not found.

/Users/me/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.2.aar/a1a4a045a3ea2f70ae16170c81e2001d/res/values-v26/values-v26.xml:17:5-93: AAPT: error: style attribute 'android:attr/keyboardNavigationCluster' not found.

/Users/me/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.2.aar/a1a4a045a3ea2f70ae16170c81e2001d/res/values/values.xml:252:5-69: AAPT: error: resource android:attr/fontStyle not found.

/Users/me/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.2.aar/a1a4a045a3ea2f70ae16170c81e2001d/res/values/values.xml:252:5-69: AAPT: error: resource android:attr/font not found.

/Users/me/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.2.aar/a1a4a045a3ea2f70ae16170c81e2001d/res/values/values.xml:252:5-69: AAPT: error: resource android:attr/fontWeight not found.

error: failed linking references.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Failed to process resources, see aapt output above for details.

总的侧面混乱 - Facebook 在 RN 中告诉您针对 SDK 23 或 6.0 的设置指南 但是然后 node_modules 文件夹中 react-native-fbsdk 的目标 SDK 更高,因此给了我警告

Total side confusion as well - Facebook tells you in the RN set up guides to target SDK 23 or 6.0 But then the target SDK inside the node_modules folder for react-native-fbsdk is higher thus giving me the warnings

推荐答案

不记得我是从哪里捡到的,但如果你觉得鲁莽,你可以通过添加:

Can't remember where I picked this up but if you are feeling reckless you can force libraries onto the same sdk by adding:

subprojects {
    afterEvaluate {project ->
    // force libs to use recent buildtools
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion = 27  // change to match your desired version
                buildToolsVersion = "27.0.3" // ....
            }
        }
    }
}

到你的根android/build.gradle.在 react-native-git-upgrade 之后,到目前为止还没有让我失望.嗯嗯

to your root android/build.gradle. Hasn't failed me so far after a react-native-git-upgrade. ymmv

这篇关于React Native:错误:找不到资源android:style/TextAppearance.Material.Widget.Button.Borderless.Colored的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆