无法评估模块'react-native-maps':未找到名称为'default'的配置。

19
发生了使用 'react-native-maps' 构建应用时的问题。
这是我的 setting.gradle 文件。
include ':react-native-maps'
project(':react-native-maps').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-maps/android')

android/app/build.gradle文件的依赖关系

dependencies {
    compile project(':react-native-maps')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile 'com.airbnb.android:react-native-maps:0.6.0'
}

这是我的MainActivity.java文件,已更新为MapsPackage()

protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new MapsPackage()
        );
    }

出现的错误:

JS服务器已在运行。 正在构建并将应用程序安装到设备上(cd android && gradlew.bat installDebug ...

失败:发生异常。

  • 出错原因: 配置项目“:app”时出现问题。

    无法评估模块react-native-maps:找不到名称为“default”的配置。

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。 使用--info或--debug选项运行以获取更多日志输出。

构建失败

总时间:13.479秒 无法将应用安装到设备上,请阅读上面的错误详情。

我已参考了给定链接中提到的所有步骤https://github.com/lelandrichardson/react-native-maps/blob/master/docs/installation.md

我也看过https://github.com/lelandrichardson/react-native-maps/issues/288但无法解决错误。

请帮忙,谢谢!

3个回答

31

错误在 build.gradle 文件中的依赖项,请尝试使用以下内容:

dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile 'com.airbnb.android:react-native-maps:0.6.0'
}

删除compile project(':react-native-maps')这一行即可解决问题。这一行是由rnpm link创建的,但是存在一个bug。

在MainActivity.java中应该像这样:

package com.yourapp;   //<- put your app name
import com.facebook.react.ReactActivity;
import com.airbnb.android.react.maps.MapsPackage; //<- this line is important
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends ReactActivity {
  @Override
  protected String getMainComponentName() {
    return "yourapp"; //<- put your app name
  }
  @Override
  protected boolean getUseDeveloperSupport() {
    return BuildConfig.DEBUG;
  }
  @Override
  protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
    new MainReactPackage(),
    new MapsPackage(this) //here you must be write the param this
    );
  }
}

我在进行操作时遇到了这个错误 MainActivity.java:36: error: method does not override or implement a method from a supertype @Override - lwinkyawmyat
@ubatin 在 protected List <ReactPackage> getPackages(){} 上方移除 @Override 应该就可以解决问题。 - NotNone
3
我通过在 MainApplication.java 而不是 MainActivity.java 中添加 import com.airbnb.android.react.maps.MapsPackage;new MapsPackage() 来解决问题。 (RN - 0.30) - lwinkyawmyat
2
第一步只是对我来说是必要的,但是对于最新的react-native-maps包来说,它应该像这样:compile 'com.airbnb.android:react-native-maps:0.12.1' - vaskort

0

0

react-native-maps@0.7.1 降级到 react-native-maps@0.4.2 后正常工作。

我正在使用 react-native@0.29.0

以下是我的设置:

android/app/build.gradle

dependencies {
    compile project(':react-native-maps')
}

android/settings.gradle

include ':react-native-maps'
project(':react-native-maps').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-maps/android')

MainApplication.java

package com.package;

import android.app.Application;
import android.util.Log;

import com.facebook.react.ReactApplication;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;

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

import com.AirMaps.AirPackage; // <- Add this line
import com.i18n.reactnativei18n.ReactNativeI18n;
import com.oblador.vectoricons.VectorIconsPackage;

public class MainApplication extends Application implements ReactApplication {

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

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new AirPackage(), // <- Add this line
          new MainReactPackage(),
          new ReactNativeI18n(),
          new VectorIconsPackage()
      );
    }
  };

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

AndroidManifest.xml

<application
      android:name=".MainApplication"
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme">
      <!--reference your google_map_id-->
      <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_map_id"/>
    </application>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接