我是Android开发新手,最近被分配到一个android项目,该项目已经一年多没有更新了。当我尝试构建时出现以下错误。
这个项目是在 android X 之前制作的,我刚刚使用 android studio 迁移到了 android X。Gradle 版本是 3.8,现在是 7.0。当迁移和升级完成后,我在构建时开始遇到这个问题
请指导我应该如何解决它。
FAILURE:构建失败并出现异常。**
出了什么问题:任务“:app:packageDebug”执行失败。执行 com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable Zip 文件 'C:\Users...\app\build\outputs\apk\debug\app-debug.apk' 时发生故障\app-debug.apk' 已包含条目 'AndroidManifest .xml',无法覆盖
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。请访问https://help.gradle.org获取更多帮助 此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 8.0 不兼容。使用“--warning-mode all”显示各个弃用警告。请参阅https://docs.gradle.org/7.0.2/userguide/command_line_interface.html#sec:command_line_warnings 在 3 秒内构建失败
这是我的 gradle 文件:
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.crashlytics'
android {
compileSdkVersion 31
defaultConfig {
applicationId "com.myapp.app"
minSdkVersion 21
targetSdkVersion 31
versionCode 108
versionName "3.7"
testInstrumentationRunner 'androidx.test.runner.AndroidJsUnitRunner'
multiDexEnabled true
}
allprojects …Run Code Online (Sandbox Code Playgroud) 我正在使用 React Native 开发移动应用程序。我想在按下按钮后打开一个 WebView。这是我的代码,但它不起作用。按钮 onPress 方法不起作用。
import React, { Component } from 'react';
import { View, StyleSheet, Button, WebView } from 'react-native';
import { Constants } from 'expo';
export default class webView extends Component {
onNavigationStateChange = navState => {
if (navState.url.indexOf('https://www.google.com') === 0) {
const regex = /#access_token=(.+)/;
const accessToken = navState.url.match(regex)[1];
console.log(accessToken);
}
};
renderContent() {
return (
<WebView
source={{
uri: '',
}}
onNavigationStateChange={this.onNavigationStateChange}
startInLoadingState
scalesPageToFit
javaScriptEnabled
style={{ flex: 1 }}
/>
);
}
render() {
return …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用给定的数据从服务器获取数据。我正在使用以下代码:
const details = {
'function': 'getUsers',
};
const formBody =
Object.keys(details).map(key=>encodeURIComponent(key)+
'='+encodeURIComponent(details[key])).join('&');
console.log(formBody);
fetch(url, {
method: 'POST',
credentials: 'include',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Cookie': 'XPIDER_SID=' + this.props.text
},
body: formBody
}).then((response) => response.json())
.then((responseJson) => {
if (responseJson.status === 'okay') {
this.setState({ users: responseJson.users });
} else {
this.setState({ error: responseJson.error });
}
})
Run Code Online (Sandbox Code Playgroud)
直到现在它都很好用。现在我必须发送一个数据数组,但是当我在细节常量中写入一个数组时,由于 formBody,服务器不接受该数组。在formBody中,整个请求都是字符串,所以数组转为字符串。我怎样才能用这个发送一个数组?或者你们知道其他选择吗?谢谢你 !
我正在使用react-native-router-flux进行导航。我在场景中获取一组数据,然后使用组件将它们渲染在滚动视图中。在该组件中,有一个用于该数据的删除方法。当用户删除数据时,我需要重新加载场景以获取新数据并渲染它们。如何重新加载当前场景。
这是渲染的代码。
<ScrollView style={styles.topContainer}>
<Header headerText={'Tasks'} />
{this.renderTasksDetails()}
<View style={styles.container}>
<AddButton onPress={() => Actions.addTasks({ text: this.props.text })}> + </AddButton>
</View>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
和 renderTaskDetail 函数
return this.state.tasks.map(task =>
<TaskDetail key={task.metin} task={task} text2={this.props.text} />);
Run Code Online (Sandbox Code Playgroud)
正如我所说,我有一组数据,这就是为什么我将其映射到另一个组件(TaskDetail)。
我获取另一个组件中的删除方法,然后调用刷新操作。
fetch(URL, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded';
},
body: formBody
}).then((response) => response.json())
.then((responseJson) => {
console.log(responseJson);
console.log(responseJson.stat);
if (responseJson.stat === 'ok') {
Actions.refresh({ text: text2 });//What to do for reload
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能刷新当前场景。我试图去同一个场景,但它没有任何作用,因为我已经在那个场景了。
编辑:router.js
<Scene key="main">
<Scene key="tasks" hideNavBar={true} component={Tasks} initial />
<Scene …Run Code Online (Sandbox Code Playgroud) react-native ×3
android ×1
api ×1
arrays ×1
fetch-api ×1
firebase ×1
gradle ×1
http-post ×1
javascript ×1
webview ×1