我正在尝试为我的Ubuntu机器上的Raspberry Pi进行交叉编译.
在我最初的尝试中,我使用的是arm-linux-gnueabi编译器,它可以在Ubuntu repo中找到.我得到了这个工作.我能够构建所有依赖项并在我的cmake项目中使用交叉编译器.
但是,我相信我应该使用hf版本,所以我切换到arm-linux-gnueabihf.然后我意识到这不适用于Raspberry Pi,因为它是armv6.
经过一些谷歌搜索后,我找到了GitHub预先构建的工具链.
我下载了工具链,但我真的不明白如何"安装"它.我将文件解压缩到我的主目录.目录结构如下所示:
/gcc-linearo-arm-linux-gnueabihf-raspbian
/arm-linux-gnueabihf
/bin
(contains g++, gcc, etc)
/lib
(contains libstdc++ library)
/bin
(contains arm-linux-gnueabihf-g++, arm-linux-gnueabihf-...)
/lib
(gcc lib stuff)
Run Code Online (Sandbox Code Playgroud)
如果我将目录更改为INNER bin文件夹,我可以从终端编译测试程序,没有任何问题.
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/
arm-linux-gnueabihf/bin$ g++ test.cpp -o test
Run Code Online (Sandbox Code Playgroud)
然后我尝试在OUTER bin文件夹中编译测试程序,该文件夹包含工具的前缀版本.
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin$
arm-linux-gnueabihf-g++ test.cpp -o test
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用编译器时(从内部bin目录之外),它无法找到工具链附带的libstdc ++共享库:
arm-linux-gnueabihf-gcc: error while loading shared libraries:
libstdc++.so.6: cannot open shared object file: No such file or directory.
Run Code Online (Sandbox Code Playgroud)
此外,我希望能够使用编译器而无需导航到bin目录.所以我尝试添加OUTER bin目录(因为我想要前缀版本)和两个lib目录到我的PATH:
export PATH=$PATH:~/tools/.../bin
export PATH=$PATH:~/tools/.../lib
export PATH=$PATH:~/tools/.../.../lib
Run Code Online (Sandbox Code Playgroud)
但是,这会导致相同的错误.我应该如何"安装"工具链,以便我可以随处使用工具链,就像我使用Ubuntu repo中的交叉编译器一样?
比方说,我想要做的INNER JOIN两个实体之间Foo和Bar:
@Query("SELECT * FROM Foo INNER JOIN Bar ON Foo.bar = Bar.id")
List<FooAndBar> findAllFooAndBar();
Run Code Online (Sandbox Code Playgroud)
是否可以强制这样的返回类型?
public class FooAndBar {
Foo foo;
Bar bar;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时,我收到此错误:
error: Cannot figure out how to read this field from a cursor.
Run Code Online (Sandbox Code Playgroud)
我也尝试使表名称别名来匹配字段名称,但这也不起作用.
如果这不可能,我应该如何干净地构建包含两个实体的所有字段的兼容返回类型?
有没有办法用Android Room创建可重用的通用基类DAO?
public interface BaseDao<T> {
@Insert
void insert(T object);
@Update
void update(T object);
@Query("SELECT * FROM #{T} WHERE id = :id")
void findAll(int id);
@Delete
void delete(T object);
}
public interface FooDao extends BaseDao<FooObject> { ... }
public interface BarDao extends BaseDao<BarEntity> { ... }
Run Code Online (Sandbox Code Playgroud)
我无法找到任何方法来实现这一点,而无需声明相同的接口成员并为每个子类编写查询.在处理大量类似的DAO时,这变得非常乏味......
我真的不明白这里发生了什么.我只是想在已发布的端口上使用主机的公共IP从一个docker容器内部,另一个docker容器,通过主机执行http请求.
这是我的设置.我有我的开发机器.我有一个带有两个容器的docker主机.CONT_A在端口3000上侦听并发布Web服务.
DEV-MACHINE
HOST (Public IP = 111.222.333.444)
CONT_A (Publish 3000)
CONT_B
Run Code Online (Sandbox Code Playgroud)
在我的开发机器上(一台完全不同的机器)
我可以毫无问题地卷曲
curl http://111.222.333.444:3000 --> OK
Run Code Online (Sandbox Code Playgroud)
当我SSH进入HOST
我可以卷曲而没有任何问题
curl http://111.222.333.444:3000 --> OK
Run Code Online (Sandbox Code Playgroud)
当我在CONT_B内执行时
不可能,只是超时.Ping虽然很好......
docker exec -it CONT_B bash
$ curl http://111.222.333.444:3000 --> TIMEOUT
$ ping 111.222.333.444 --> OK
Run Code Online (Sandbox Code Playgroud)
为什么?
Ubuntu 16.04,Docker 1.12.3(默认网络设置)
dyld: Library not loaded: /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
Referenced from: /System/Library/Frameworks/Intents.framework/Intents
Reason: no suitable image found. Did find:
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices: mach-o, but not built for iOS simulator
Run Code Online (Sandbox Code Playgroud)
我意识到我将无法在旧版本的iOS上使用Intents扩展,但我仍然希望我的主应用程序能够正常工作.从我在网上看到的内容,即使我使用SiriKit,我仍然能够以8为目标.iOS <12时,任何与Intent相关的代码都已被防范.
我的项目配置如下:
我已经测试了一些东西,试图找出导致问题的确切原因:
这是Xcode/Simulator的问题还是我的应用程序中的错误?
我有以下情况.我们有两个在制作APK:
我想发布3.0 APK的分阶段发布更新.所以我:
现在我有三个APK:
但是,此配置无效.它说"所有可能收到30021版本的设备都会收到版本30022"."发布分阶段发布按钮"已禁用.
要继续,我必须停用3.0.21版本,这导致:
这感觉不对.当我作为分阶段发布时发布3.0.21的当前用户会发生什么?如果它们不属于分阶段推出,它们会降级到2.14应用程序,还是3.0.21 APK还会被提供?
对我来说,听起来3.0.21将完全未发表.也许我只是误解了这些信息.见下文:

我正在尝试使用新UIImpactFeedbackGenerator的触觉反馈,但它不起作用。
我在 Objective-C 中使用以下代码示例
UIImpactFeedbackGenerator *myGen = [[UIImpactFeedbackGenerator alloc] init];
[myGen initWithStyle:(UIImpactFeedbackStyleMedium)];
[myGen impactOccurred];
myGen = NULL;
Run Code Online (Sandbox Code Playgroud)
我在UILongPressGestureRecognizer委托中触发它。
知道可能是什么问题吗?
当文件在名称中包含加号(+)时,我有一些问题将文件提交到我的VisualSVN服务器.这是iOS开发所需要的.当我尝试提交名称包含加号的文件时,我收到以下错误:
svn:E155011:文件'C:...\Foo + Bar.txt'已过期
svn:E160013:找不到'/svn/Test/!svn/txr/1-8/Foo+Bar.txt'路径
这非常令人沮丧.我在Windows和Mac OS X上尝试了几个客户端(TortoiseSVN,Apache SVN),同时拥有1.6和1.7客户端.我怀疑这可能是一个VisualSVN问题,除非在SVN中加号总是特殊的.如果是这样,是否有任何解决方法(例如转义加号或其他东西).我无法在Google上找到任何相关信息.
我想知道是否可以为特定的风味组组合提供文件或配置设置.例如,我有2个风味组,每组有2种不同的风味:
风味组:版本
风味组:类型
订购"类型","版本"时,我可以构建我的应用程序的4种不同风格:
我的源代码树看起来像这样:
/src
/free
/res
/full
/res
/v2
/java
/res
AndroidManifest.xml (features and permissions for v2 flavors)
/v3
/java
/res
AndroidManifest.xml (features and permissions for v3 flavors)
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,对我的项目非常有效.但是,我希望我能为特定的风味组合组合提供文件.例如,我想为FullV3和FullV2提供不同的AndroidManifests.我不认为这是可能的,或者?例如:
/src
/free
/res
/full
/res
/v2
/java
/res
AndroidManifest.xml (features and permissions for v2 flavors)
/v3
/java
/res
AndroidManifest.xml (features and permissions for v3 flavors)
/fullv3
AndroidManifest.xml (features and permissions for full v3 only!)
/fullv2
AndroidManifest.xml (features and permissions …Run Code Online (Sandbox Code Playgroud) 在早期版本的 Android 中,可能会出现在状态栏中不显示图标的通知,但默认情况下会使用该priority设置进行扩展。
// Hide status bar icon AND show notification as expanded
builder.setPriority(NotificationCompat.PRIORITY_MIN);
Run Code Online (Sandbox Code Playgroud)
但是,现在当在运行 Android 26 的设备上定位 Android 25 (Oreo) 时,这似乎是不可能的。当我将重要性级别设置为IMPORTANCE_MIN我达到了在状态栏中不显示图标的预期效果。但是,通知默认为“折叠”。
// Hide status bar icon (but notification is collapsed)
NotificationChannel(CHANNEL_ID, name, NotificationManager.IMPORTANCE_MIN);
Run Code Online (Sandbox Code Playgroud)
如果我将重要性级别设置为(或更高),IMPORTANCE_LOW则默认情况下会展开通知,但会在状态栏中显示一个图标。
// Expand notification (but shows status bar icon)
NotificationChannel(CHANNEL_ID, name, NotificationManager.IMPORTANCE_LOW);
Run Code Online (Sandbox Code Playgroud)
有什么办法可以强制在使用时默认展开通知IMPORTANCE_MIN?也许我错过了一些设置。
PS:请不要建议使用setSmallIcon透明。这只是一个看起来很糟糕的旧丑陋黑客。
通过“折叠”和“扩展”,我的意思是:
源代码片段
// Hide status bar icon AND show notification as expanded
builder.setPriority(NotificationCompat.PRIORITY_MIN);
Run Code Online (Sandbox Code Playgroud) android ×5
android-architecture-components ×2
android-room ×2
ios ×2
arm ×1
arr ×1
c++ ×1
docker ×1
google-play ×1
gradle ×1
iis ×1
linux ×1
objective-c ×1
raspberry-pi ×1
svn ×1
tortoisesvn ×1
uikit ×1