小编K.S*_*ith的帖子

升级到 androidX 后,Zip 文件“...”已包含条目“AndroidManifest.xml”,无法覆盖构建时错误

我是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 文件:

build.gradle(模块:MyApp.app)

    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)

android gradle firebase android-gradle-plugin

10
推荐指数
2
解决办法
6776
查看次数

使用 reactNative 按下按钮后打开 WebView

我正在使用 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)

webview react-native

3
推荐指数
1
解决办法
7989
查看次数

使用 React Native 将数组发送到服务器以获取一些数据

我正在尝试使用给定的数据从服务器获取数据。我正在使用以下代码:

    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中,整个请求都是字符串,所以数组转为字符串。我怎样才能用这个发送一个数组?或者你们知道其他选择吗?谢谢你 !

arrays api http-post react-native fetch-api

3
推荐指数
1
解决办法
7329
查看次数

React Native router-flux 重新加载当前场景

我正在使用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)

javascript react-native react-native-router-flux

2
推荐指数
1
解决办法
9872
查看次数