首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android框架无法使用gomobile进行编译

Android框架无法使用gomobile进行编译
EN

Stack Overflow用户
提问于 2019-08-02 11:49:00
回答 1查看 170关注 0票数 4

当我们试图用gomobile bind编译我们的框架的AAR版本时,我们面临一个编译问题。它与iOS框架绑定得很好。

以下是我们得到的错误:

代码语言:javascript
复制
$ make build_android

cd ./gomobile/logger && gomobile bind -o ../build/logger.aar -target=android . ../levelenum ../remotelogger ../apiclient ../userproperties

gomobile: javac -d /var/folders/p6/vvxrsdbj1bg87kkgk3k77cn40000gp/T/gomobile-work-357624003/javac-output -source 1.7 -target 1.7 -bootclasspath /Users/robin/Library/Android/sdk/platforms/android-29/android.jar apiclient/Apiclient.java apiclient/AuthenticationArgs.java apiclient/PostArgs.java go/Seq.java go/Universe.java go/error.java levelenum/Level.java levelenum/Levelenum.java logger/Logger.java logger/Logger_.java remotelogger/Remotelogger.java userproperties/ApplicationProperties.java userproperties/CarrierProperties.java userproperties/DeviceProperties.java userproperties/NetworkProperties.java userproperties/OSProperties.java userproperties/Userproperties.java failed: exit status 1
apiclient/Apiclient.java:12: error: class APIClient is public, should be declared in a file named APIClient.java
public final class APIClient implements Seq.Proxy {
             ^
remotelogger/Remotelogger.java:12: error: class RemoteLogger is public, should be declared in a file named RemoteLogger.java
public final class RemoteLogger implements Seq.Proxy {
             ^
userproperties/Userproperties.java:12: error: class UserProperties is public, should be declared in a file named UserProperties.java
public final class UserProperties implements Seq.Proxy {
             ^
./apiclient/Apiclient.java:12: error: class APIClient is public, should be declared in a file named APIClient.java
public final class APIClient implements Seq.Proxy {
             ^
apiclient/Apiclient.java:13: error: cannot access Apiclient
        static { Apiclient.touch(); }
                 ^
  bad source file: ./apiclient/Apiclient.java
    file does not contain class apiclient.Apiclient
    Please remove or make sure it appears in the correct subdirectory of the sourcepath.
5 errors

make: *** [build_android] Error 1

例如,我们的APIClient.go文件如下所示:

代码语言:javascript
复制
package apiclient

import (
    "bytes"
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
    "time"
)

// APIClient : handler of the Network request
type APIClient struct {
    BaseURL string
}

文件夹结构是:

代码语言:javascript
复制
gomobile/
    Makefile
    go.mod
    go.sum
    build/
        logger.framework (iOS)
        logger.aar (Android) <---- Should be here but cannot be built
    apiclient/
        apiclient.go
    logger/
        logger.go
    userproperties/
        userproperties.go
EN

回答 1

Stack Overflow用户

发布于 2022-10-13 19:08:22

虽然这个问题已经很老了,但我遇到了同样的问题,我认为我可以在这里发布解决方案,以防其他人遇到这个问题。

这个问题似乎是由于与包的名称相同的类型造成的。给其中一个重新命名为我解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57325926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档