【问题标题】:cannot evaluate module 'react-native-maps' : Configuration with name 'default' not found无法评估模块“react-native-maps”:找不到名称为“默认”的配置
【发布时间】:2016-10-31 22:06:20
【问题描述】:

使用“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'
}

这是我使用 MapsPackage() 更新的 MainActivity.java 文件

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

即将发生的错误:

JS 服务器已经在运行。 在设备上构建和安装应用程序(cd android && gradlew.bat install 调试...

FAILURE:构建失败并出现异常。

  • 出了什么问题: 配置项目 ':app' 时出现问题。

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

  • 尝试: 使用 --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,但无法解决错误

请帮忙 在此先感谢

【问题讨论】:

    标签: android reactjs maps react-native


    【解决方案1】:

    错误出现在 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 创建的,但是是一个错误。

    在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 ^
    • @ubatin 删除上面的@Override protected List&lt;ReactPackage&gt; getPackages() { 应该可以解决问题
    • 我通过在 MainApplication.java 中添加 import com.airbnb.android.react.maps.MapsPackage; new MapsPackage() 而不是 MainActivity.java (RN - 0.30) 解决了
    • 只有我需要第一步,但使用最新的react-native-maps 包,所以它就像:compile 'com.airbnb.android:react-native-maps:0.12.1'
    【解决方案2】:

    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>
    

    【讨论】:

      【解决方案3】:

      我按照以下指示进行操作:

      https://github.com/airbnb/react-native-maps/blob/master/docs/installation.md

      注意到android/settings.gradle 应该指向react-native-maps/lib/android,如下所示:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-17
        • 2015-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-01
        • 2016-10-27
        相关资源
        最近更新 更多