android-studio - 构建项目时获取源和目标必须是不同的错误

标签 android-studio cmake android-ndk

我在构建项目时收到此错误。试图在 android-studio 中添加一个新库。有没有人基本上有一个想法,我正在尝试在这里创建一个新库。

尝试的选项:

  • 手动删除构建
  • 缓存失效/重启
  • Gradle 清理构建缓存
  • 构建->清理项目

    但是构建失败了。

    源 C:\Users\abc\AndroidStudioProjects\Events\app\build\intermediates\cmake\debug\obj\armeabi-v7a\libnative-lib.so 和 objective-c :\Users\abc\AndroidStudioProjects\Events\app\build\中间件\cmake\debug\obj\armeabi-v7a\libnative-lib.so 必须不同

  • CMakeLists.txt 我正在使用它:
    # For more information about using CMake with Android Studio, read the
    # documentation: https://d.android.com/studio/projects/add-native-code.html
    
    # Sets the minimum version of CMake required to build the native library.
    
    cmake_minimum_required(VERSION 3.4.1)
    
    # Creates and names a library, sets it as either STATIC
    # or SHARED, and provides the relative paths to its source code.
    # You can define multiple libraries, and CMake builds them for you.
    # Gradle automatically packages shared libraries with your APK.
    
    add_library( # Sets the name of the library.
                 native-lib
    
                 # Sets the library as a shared library.
                 SHARED
    
                 # Provides a relative path to your source file(s).
                 native-lib.cpp
            )
    
    add_library (
            testLib
            SHARED
            TestClassesManager.cpp
    )
    # Searches for a specified prebuilt library and stores the path as a
    # variable. Because CMake includes system libraries in the search path by
    # default, you only need to specify the name of the public NDK library
    # you want to add. CMake verifies that the library exists before
    # completing its build.
    
    find_library( # Sets the name of the path variable.
                  log-lib
    
                  # Specifies the name of the NDK library that
                  # you want CMake to locate.
                  log )
    
    # Specifies libraries CMake should link to your target library. You
    # can link multiple libraries, such as libraries you define in this
    # build script, prebuilt third-party libraries, or system libraries.
    
    
    target_link_libraries( # Specifies the target library.
                           native-lib
    
                           # Links the target library to the log library
                           # included in the NDK.
                           ${log-lib}
    
            )
    
    target_link_libraries(
            testLib
    
            native-lib
    )
    

    如果我更换,错误就会消失
    target_link_libraries(
            testLib
    
            native-lib
    )
    

    经过
    target_link_libraries(
            testLib
        ${log-lib}
    
    )
    

    但我想链接两个库。但它给出了上述错误。请帮忙。

    最佳答案

    这是一个奇怪的错误,但感谢您提供简洁的重现项目。实际上前几天有人向我提到了这一点,但我没有运气重现失败。

    我还在调查here ,但现在似乎解决方法是运行干净,然后刷新链接的 C++ 项目,然后构建。如果您需要使用“刷新链接的 c++ 项目”按钮,请再次先运行 clean。

    已精心挑选了一个修复程序,并将在 4.0.1 中发布。

    关于android-studio - 构建项目时获取源和目标必须是不同的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62168227/

    相关文章:

    android - libusb_open 返回 LIBUSB_ERROR_ACCESS?

    android - 在 Android Studio 0.8.9 上导入 actionbarsherlock

    java - 在 Android Studio 中导入项目后如何修复错误

    c++ - Linux:使用 inotify 与 fcntl 发生冲突

    docker - Docker不添加现有文件

    android - 包文件错误 : with Ndk HelloJni Sample 中的 native ABI 不匹配

    android - 共享库中的异常处理

    android - 更新后模拟器出现问题

    java - 有没有一种方法可以搜索搜索结果?

    c++ - cmake:如何告诉库在哪里可以找到依赖项