我将android.support:appcompat-v7更新为28.0.0。
但是它带来了构建错误。
Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:8:5-23:19 to override.
Run Code Online (Sandbox Code Playgroud)
然后我在Logcat中收到此错误:
清单合并失败
我的app.gradle:
configurations.all {
resolutionStrategy.force 'com.android.support:design:28.0.0'
resolutionStrategy.force "com.android.support:support-v4:28.0.0"
resolutionStrategy.force "com.android.support:support-media-compat:28.0.0"
}
...
dependencies {
implementation 'com.android.support:multidex:1.0.1'
// Our dependencies
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
}
Run Code Online (Sandbox Code Playgroud)
我如何解决它?
我需要你的解决方案。
先感谢您。
刚开始学习反应原生,
我创建了一个单独的文件flexdemo.js并创建了如下组件:
import React, { Component } from 'react';
import { View } from 'react-native';
export default class FlexibleViews extends Component {
render() {
return (
<View style={{ flex: 1 }}>
<View style={{ flex: 1, backgroundColor: "powderblue" }}> </View>
<View style={{ flex: 2, backgroundColor: "skyblue" }}> </View>
<View style={{ flex: 3, backgroundColor: "steelblue" }}> </View>
</View>
);
}
}
Run Code Online (Sandbox Code Playgroud)
和App.js文件如下:
import React, { Component } from 'react';
import {
AppRegistry,
Platform,
StyleSheet,
Text,
View, Image
} from 'react-native';
// import …Run Code Online (Sandbox Code Playgroud) 我在我的Windows PC上使用React native 0.52.0和react-native-cli 2.0.1进行android开发.尽管我做了所有的改变.当我运行时react-native run-android,它成功构建,但是当我运行它时,我得到默认的反应原生屏幕.
我跑的结果react-native run-android-

我得到的应用程序 -
index.js
import { AppRegistry } from 'react-native';
import App from './App';
AppRegistry.registerComponent('albums', () => App);
Run Code Online (Sandbox Code Playgroud)
app.js
import React from 'react'
import ReactNative, { Text } from 'react-native'
export default const App = () => {
return (
<Text>Hello World</Text>
)
}
Run Code Online (Sandbox Code Playgroud)
当我运行时react-native init albums,它只是一个创建的index.js文件,没有index.android.js或index.ios.js文件我做错了什么?
我们正在尝试将新的React Native应用程序集成到现有的原生Android应用程序中.遵循RN官方文档,我们设法使其工作,但有一些关于导航的问题.
我们有原生和非原生(JS)屏幕,我们需要一种在所有屏幕之间导航的好方法,无论屏幕是否为原生屏幕.
我们尝试采用本机导航和react-native-navigation来查看是否有任何地址我们的问题,但没有一个实际工作.
目前,我们已经注册了所有我们的RN屏幕,如下所示:
const provide = (store, Screen) => {
return props => (
<Provider store={store}>
<Screen {...props} />
</Provider>
);
};
const store = configureStore();
AppRegistry.registerComponent('Home', () => provide(store, HomeComponent));
Run Code Online (Sandbox Code Playgroud)
我们还创建了一个名为"Navigator"的本机模块,该模块具有称为openComponent接受屏幕名称及其道具的导航方法.以下是openComponent外观的实现方式:
// our native module code ...
@ReactMethod
public void openComponent(String name, String extra) {
try {
Intent intent = new Intent(this.getReactApplicationContext(), MyReactActivity.class);
intent.putExtra("moduleName", name);
intent.putExtra("extra", extra);
getCurrentActivity().startActivityForResult(intent, 0);
}
catch (Exception e) {
e.printStackTrace();
Crashlytics.logException(e.getCause());
} …Run Code Online (Sandbox Code Playgroud) javascript android react-native react-native-android react-native-navigation
根据https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html:
在2019年8月,Play将要求使用本机库的新应用和应用更新除了32位版本之外还提供64位版本.
我有一个React Native应用程序(包括本机代码).我的问题是如何知道我使用的第三方库或者我自己的代码是否不支持64位?我该如何解决?
更新
我添加x86_64到mu build.gradle,我现在看到x86_64apk中的文件夹,但我认为有些文件丢失了.
这是我的x86文件夹的样子:
这是我的x86_64文件夹的样子:
android 32bit-64bit google-play react-native react-native-android
我正在尝试将应用程序升级到React Native 0.57.1.我想我已经按照所有步骤,升级了所有正确的文件,但我仍然收到一个我无法理解的错误:
:react-native-document-picker:compileReleaseSources UP-TO-DATE
:react-native-document-picker:mergeReleaseResources UP-TO-DATE
:react-native-document-picker:verifyReleaseResourcesC:\Users\USERNAME\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\b3b5480809d523e6f8b8de92faafbcda\res\values-v26\values-v26.xml:9:5-12:13: AAPT: error: resource android:attr/colorError not found.
C:\Users\USERNAME\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\b3b5480809d523e6f8b8de92faafbcda\res\values-v26\values-v26.xml:13:5-16:13: AAPT: error: resource android:attr/colorError not found.
C:\Users\USERNAME\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\b3b5480809d523e6f8b8de92faafbcda\res\values-v26\values-v26.xml:17:5-93: AAPT: error: style attribute 'android:attr/keyboardNavigationCluster' not found.
C:\Users\USERNAME\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\b3b5480809d523e6f8b8de92faafbcda\res\values\values.xml:251:5-69: AAPT: error: resource android:attr/fontStyle not found.
C:\Users\USERNAME\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\b3b5480809d523e6f8b8de92faafbcda\res\values\values.xml:251:5-69: AAPT: error: resource android:attr/font not found.
C:\Users\USERNAME\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\b3b5480809d523e6f8b8de92faafbcda\res\values\values.xml:251:5-69: AAPT: error: resource android:attr/fontWeight not found.
error: failed linking references.
:react-native-document-picker:verifyReleaseResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':react-native-document-picker:verifyReleaseResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt
Run Code Online (Sandbox Code Playgroud)
我无法理解这些错误,任何想法是什么意思?我怎样才能找到解决这个问题的方法?
我尝试过各种各样的东西,包括删除.cache目录,更改gradle版本,但似乎没有任何帮助.任何的想法?
我使用的是本机最新版本的0.54.0和每当在iOS上运行应用程序时,发现有关弃用生命周期方法的警告.还请更新组件.
警告 :
不推荐使用componentWillMount,将在下一个主要版本中删除它.请改用componentDidMount.作为临时解决方法,您可以重命名为UNSAFE_componentWillMount.请更新以下组件:容器,文本,TouchableOpacity,Transitioner,View
我也根据waring添加前缀UNSAFE_的每个方法进行更改.
UNSAFE_componentDidMount() {
}
UNSAFE_componentWillMount() {
}
UNSAFE_componentWillUpdate(nextProps, nextState) {
}
UNSAFE_componentWillReceiveProps(nextProps) {
}
Run Code Online (Sandbox Code Playgroud)
虽然警告仍在继续.请帮我.
目前我在我的应用程序中隐藏了YellowBox waring.
import { YellowBox } from 'react-native';
render() {
YellowBox.ignoreWarnings([
'Warning: componentWillMount is deprecated',
'Warning: componentWillReceiveProps is deprecated',
]);
}
Run Code Online (Sandbox Code Playgroud) 我尝试在我的mac上运行genymotion android模拟器上的react-native app.当我写react-native run-android它得到
Running /usr/local/opt/android-sdk/platform-tools/adb reverse tcp:8081 tcp:8081
error: closed
Could not run adb reverse: Command failed: /usr/local/opt/android-sdk/platform-tools/adb reverse tcp:8081 tcp:8081
Building and installing the app on the device (cd android && ./gradlew installDebug...
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html
MacBook-Pro-MacBook:ART-CarefulPeople macbook$
Run Code Online (Sandbox Code Playgroud)
然后我试过了:
react-native startreact-native run-android同样的结果. …
adb android-emulator genymotion react-native react-native-android
我正在开发一个React-native应用程序,突然间我开始收到以下错误:
- 出了什么问题:配置项目':app'时出现问题.无法解析配置':app:_debugApk'的所有依赖项.配置项目':react-native-config'时出现问题.无法解析配置的所有依赖项':react-native-config:_debugPublishCopy'.找不到com.atlassian.mobile.video:okhttp-ws-compat:3.7.0-atlassian1.需要:cabm8:react-native-config:unspecified> com.facebook.react:react-native:0.42.3-atlassian-1
我摆脱了模块,react-native-config但仍面临类似的错误:
- 出了什么问题:配置项目':app'时出现问题.无法解析配置':app:_debugApk'的所有依赖项.配置项目':react-native-maps'时出现问题.无法解析配置的所有依赖项':react-native-maps:_debugPublishCopy'.找不到com.atlassian.mobile.video:okhttp-ws-compat:3.7.0-atlassian1.要求:cabm8:react-native-maps:unspecified> com.facebook.react:react-native:0.42.3-atlassian-1
这个问题似乎与com.atlassian.mobile.video:okhttp-ws-compat:3.7.0-atlassian1某种方式有关.
我尝试重新安装node_modules,删除文件夹android,ios然后使用git恢复它们.我还能尝试什么?
在为我的 React Native 项目制作发布版本时出现此错误:
Expiring Daemon because JVM heap space is exhausted
> Task :app:transformDexArchiveWithDexMergerForRelease FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformDexArchiveWithDexMergerForRelease'.
> java.lang.OutOfMemoryError (no error message)
Run Code Online (Sandbox Code Playgroud)
做了一些研究并进行了一些更改,如下所示:
添加 android:largeHeap="true"到 AndroidManifest.xml 中的应用程序标签
添加
dexOptions {
javaMaxHeapSize "4g"
}
Run Code Online (Sandbox Code Playgroud)
在 android/app/build.gradle 文件中。
将以下代码添加到 gradle.properties
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
Run Code Online (Sandbox Code Playgroud)
我仍然无法摆脱这个错误。任何永久的方法来摆脱这个错误,它是如何引起的?
react-native ×10
android ×4
32bit-64bit ×1
adb ×1
expo ×1
genymotion ×1
google-play ×1
java ×1
javascript ×1
npm ×1