我在MacOSX上构建的独立包中为DMG背景添加自定义图标时遇到了麻烦.我在项目的根目录中添加了一个包.自定义图标正在从中加载,但DMG背景图标不是.我使用的是Java fx 2.2.3和jdk1.7.0_09.这是为其生成的详细输出.
Detected JavaFX Ant API version 1.2 Launching <fx:jar> task from
/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/lib/ant-javafx.jar
Launching <fx:deploy> task from
/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/lib/ant-javafx.jar
Copying 102 files to
/Users/apple/NetBeansProjects/JavaFXApplication2/dist Using base JDK
at: /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk Using default
package resource [Bundle config file] (add package/macosx/Info.plist
to the class path to customize) Using custom package resource [icon]
(loaded from file
/Users/apple/NetBeansProjects/JavaFXApplication2/package/macosx/javaFXApplication2.icns)
Creating app bundle:
/Users/apple/NetBeansProjects/JavaFXApplication2/dist/bundles/JavaFXApplication2.app
Config files are saved to
/var/folders/vd/nyxf14z53tx56g2_lbqcnfrr0000gn/T/build1722966263281326253.fxbundler/macosx.
Use them to customize package. Building DMG package for
JavaFXApplication2 Using default package resource [Bundle config
file] …Run Code Online (Sandbox Code Playgroud) 多年来我一直在 Intel MacMini 上构建 MacOs Java 应用程序,本质上是
现在在 MacOS M1 上构建它并且构建得很好。当我在 Mac M1 上运行时,它可以工作,但当我尝试在 Intel Macmini 上运行时,它会失败,并显示无法加载 JRE 环境
这是有道理的,因为当我构建它时,我只是提供一个基于 Adoptium Terium 17 的 M1 版本的单个 jre。但是我不明白如果这是我需要做的,我如何提供两个 JRE
下面我展示了主要的构建脚本
#!/bin/bash
#set -x
cd $HOME/code/jthink/songkong/src/main/scripts
hiutil -C -fapplehelpbook/SongKongHelp/SongKongHelp.helpindex applehelpbook/SongKongHelp/
cd $HOME/code/jthink/songkong
sudo rm -fr /Applications/SongKong.app
mvn -f pommacos.xml clean
mvn -f pommacos.xml -DskipTests=true install
rm -fr target/songkong-8.2
unzip target/songkong-8.2-distribution.zip -d target
ant
while read line; do
echo …Run Code Online (Sandbox Code Playgroud) 我的应用程序包中有自定义框架,用于WebKit,WebCore和JavaScriptCore.我希望所有其他依赖于WebKit,WebCore或JavaScriptCore的系统版本的框架也可以使用我的自定义版本.例如,我的Webkit自定义版本加载了私有系统框架,而这些框架依赖于WebKit的系统版本.这意味着我的WebKit和系统WebKit都会被加载,通常很快就会发生崩溃.
我应该这样理解的方法是在应用程序包开始执行之前设置DYLD_FRAMEWORK_PATH环境变量(可以在此处找到加载框架的搜索顺序:http://code.google.com/p/macdependency/wiki/SearchPaths).您可以使用setenv在代码中设置环境变量,但它不会对当前正在运行的进程生效.我必须重新启动该过程才能生效.我也想避免这种情况.
所以我的问题是在执行我的应用程序包之前设置DYLD_FRAMEWORK_PATH的最佳方法是什么?这也必须在发布应用程序包中工作.在可执行文件开始运行之前,只要有人点击我的应用程序包,就有办法运行脚本.或者还有其他建议吗?
提前致谢.
我已经根据文档构建了本地引擎https://github.com/flutter/flutter/wiki/Compiling-the-engine
在我的out目录下,有4个目录,分别是android_debug_unopt、android_debug_unopt_arm64、host_debug_unopt、host_debug_unopt_arm64
我可以使用单一架构构建 appbundle 或 apk,例如:
flutter build appbundle --debug --local-engine-src-path=/Volumes/Data/engine/src --local-engine=android_debug_unopt --target-platform android-arm
Run Code Online (Sandbox Code Playgroud)
将会成功执行。
但是,我想构建具有多种架构的appbundle或apk,包括arm和arm64,但我使用以下命令构建失败:
flutter build appbundle --debug --local-engine-src-path=/Volumes/Data/engine/src --local-engine=android_debug_unopt_arm,android_debug_unopt_arm64 --target-platform android-arm,android-arm64
Run Code Online (Sandbox Code Playgroud)
因为我们不能给 --local-engine 参数提供两条路径。
如何使用本地引擎和多重架构构建 appbundle 或 apk?
我将jdk升级到版本7_45.编译并执行jar后,工作正常,我将其打包到应用程序包中.但不幸的是,我收到此错误消息"LSOpenURLsWithRole()失败,错误-10810为文件/Users/.../MyApp.app".与jdk 8 Early Access相同的问题.我也.尝试在info.plist中为"JVMVersion"键设置不同的设置
由于jar本身工作正常,我可以通过将JavaApplicationStub替换为我自己的可执行文件来简单地调用"java -jar ./.../MyApp.jar"来解决这个问题.但不确定这是否是解决此问题的正确方法.有什么建议?谢谢.
我正在尝试实现动态投放类型的应用。首先,我创建了一个新项目,之后创建了用于此动态步骤的模块
从菜单栏中选择“文件”>“新建”>“新模块”,然后在“创建新模块”对话框中选择“动态功能模块”,然后单击“下一步”。
文件夹的结构
我创建了类,想要访问用于布局,可绘制文件夹的资源文件夹。
同样在主模块gradle中实现
实现'com.google.android.play:core:1.2.0'和dynamicFeatures = [“:dynamic_feature”]
但是获取动态模块 错误显示错误
错误:找不到符号变量activity_main
错误:找不到符号变量iv_forward
错误:找不到符号变量seekBar
https://developer.android.com/studio/projects/dynamic-delivery https://proandroiddev.com/dynamic-feature-module-android-ondemand-module-android-app-bundle-ea0d872b32d
android app-bundle android-layout android-module android-app-bundle
我正在研究什么应该是一个非常简单的 OS X 应用程序包。我的操作系统是 10.7.5 版。在这种情况下,应用程序是一个 shell 脚本。
Kekerkruip.app/Contents/Info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>Kerkerkruip</string>
<key>CFBundleIconFile</key>
<string>Kicon.icns</string>
<key>CFBundleIdentifier</key>
<string>org.kerkerkruip.Kerkerkruip</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Kerkerkruip</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<!--<key>CFBundleSignature</key>
<string>????</string>-->
<key>CFBundleVersion</key>
<string>9.0.1</string>
<key>LSMinimumSystemVersion</key>
<string>10.4</string>
<key>NSHumanReadableCopyright</key>
<string>© 2011-2015 by the Kerkerkruip team</string>
<!--<key>NSMainNibFile</key>
<string>MainMenu</string>-->
<!--<key>NSPrincipalClass</key>
<string>NSApplication</string>-->
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
Kekerkruip.app/Contents/MacOS/Kerkerkruip:
#!/usr/bin/env bash
echo "This is a blank script." 1>&2
exit 1
Run Code Online (Sandbox Code Playgroud)
当我尝试打开应用程序时,我收到以下错误消息:
$ open Kerkerkruip.app/
The application cannot be opened because it has an …Run Code Online (Sandbox Code Playgroud) 找出 .app 包启动后立即崩溃的原因的最佳方法是什么?Mac OS X 是否将日志存储在任何地方?
例如,这不起作用,并且立即崩溃:
open /Applications/MyApp.app
Run Code Online (Sandbox Code Playgroud)
但是,直接调用可执行文件似乎可以工作:
/Applications/MyApp.app/Contents/MacOS/MyAppLauncher
Run Code Online (Sandbox Code Playgroud)
Info.plist应该没问题并指向正确的可执行文件:
<key>CFBundleExecutable</key>
<string>MyAppLauncher</string>
Run Code Online (Sandbox Code Playgroud)
据我所知,OS X 甚至从不调用我的代码。我怎样才能知道它正在做什么以及为什么失败?
注意:此应用程序使用沙箱,因此我认为它与此有关。但我想看到一些日志来证实这一点。
当我尝试使用 pyinstaller 在 OS X 上构建这个应用程序时,应用程序包不起作用。
从查找器中双击捆绑包没有任何作用。
操作系统版本:OS X High Sierra 10.13.6
蟒蛇:3.6.3
pyinstaller: 3.3.1 (也试过 3.4.dev0+380ab20f8)
我构建的应用程序如下: pyinstaller --windowed mindfulness-at-the-computer-macos.spec
在寻找答案时,我发现(除其他外)以下帖子,但它们并没有多大帮助
为了确保问题不在我们的代码中,我尝试构建本文档中概述的简单示例(一直向下滚动代码):
https://pythonhosted.org/PyInstaller/runtime-information.html#run-time-information
这有同样的问题。
我是这样构建的: pyinstaller -w directories.py
当我用 python 运行它时,我得到了这个:
python directories.py
we are not frozen
bundle dir is /Users/marieke/myprojects/test
sys.argv[0] is directories.py
sys.executable is /Users/marieke/myprojects/test/venv/bin/python
os.getcwd is /Users/marieke/myprojects/test
Run Code Online (Sandbox Code Playgroud)
当我从 /Users/marieke/myprojects/test/dist/directories.app/Contents/MacOS 在终端中运行它时
./directories
we are ever so frozen
bundle dir is /Users/marieke/myprojects/test/dist/directories.app/Contents/MacOS
sys.argv[0] …Run Code Online (Sandbox Code Playgroud) 我在 Gradle 中输入了以下代码。
///start
applicationVariants.all { variant ->
variant.outputs.each { output ->
println("Roop: mappingFile: ${output.outputFile}")
}
variant.assemble.doLast {
// doLast {
File dir = new File("${project.projectDir}/out1")
dir.mkdirs()
println("Roop: copy")
variant.outputs.each { output ->
File file = output.outputFile
println("Roop: file:" + file)
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我从 android studio 执行 Build Apk 时,在创建 apk后会执行 Variant.assemble.doLast 。但是如果我执行Build Bundle ,则不会调用相同的 doLast 。
为什么没有为 BuildBundle 调用 doLast 的任何信息?