无法从代号为one的初始化程序生成Android apk

问题描述 投票:0回答:1

基本上我是从 https://start.codenameone.com/

获取应用程序

如果我从命令行进行 Maven 编译,则会生成构建成功并生成一个 jar 文件。

我可以在模拟器中的 Eclipse 中运行该应用程序,从而生成 hello world 应用程序。

当我尝试构建 Android APK 时,会导致 Eclipse 构建错误。

在通过 Eclipse 构建时,我首先收到此错误

[DEBUG] Designer is up to date
[INFO] Running ANT build target android-source
[INFO] Generating android gradle Project to C:\work\programming\codenameone\exxxxdmobile\android\target\exxxxdmobile-android-1.0-SNAPSHOT-android-source...
[INFO] No Keystore found.  Generating one now
[INFO] Generated keystore with password 'password' at C:\work\programming\codenameone\exxxxdmobile\android\..\common\androidCerts\KeyChain.ks. alias=androidKey
[INFO] Starting android project builder...
[DEBUG] Request Args: 
[DEBUG] -----------------
[DEBUG] hyp.beamId=fc30a857-dc75-4a65-9a21-d7356b242e97
[DEBUG] java.version=8
[DEBUG] maven.codenameone-maven-plugin=7.0.86
[DEBUG] ios.newStorageLocation=true
[DEBUG] maven.codenameone-core.version=LATEST
[DEBUG] -------------------
[INFO] Executing with timeout -1
[INFO] Exception in thread "main" 
[INFO] java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)

[INFO]  at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
    ... 5 more
[INFO] 

[INFO] Process return code is 1
[DEBUG] Installed platforms: []
[DEBUG] Effective build tools version = 31
[DEBUG] Adding android permissions...
[DEBUG] PREFER_MANAGED_GRADLE flag is set.  Ignoring GRADLE_HOME and GRADLE_PATH environment variables.  Using managed gradle at C:\Users\peter\.codenameone\gradle instead
[INFO] Executing with timeout -1
[INFO] 

。 .

最后我得到了 android studio 错误

[DEBUG] -------
Gradle File end 

[DEBUG] Loading CSV mapping for android X from androidx-artifact-mapping.csv
[DEBUG] Replacing Android Support classes with AndroidX classes in C:\work\programming\codenameone\exxxxdmobile\android\target\codenameone\antProject\dist\android-build\exxxxdMobile\app
[INFO] Android project builder completed with result true
[INFO] Copying Gradle Project to C:\work\programming\codenameone\exxxxdmobile\android\target\exxxxdmobile-android-1.0-SNAPSHOT-android-source
[INFO] Trying to open project in Android studio
[WARNING] Failed to open project in Android studio
java.io.IOException: Cannot run program "start": CreateProcess error=2, The system cannot find the file specified
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
    at com.codename1.maven.CN1BuildMojo.openAndroidStudioProject(CN1BuildMojo.java:898)
    at com.codename1.maven.CN1BuildMojo.doAndroidLocalBuild(CN1BuildMojo.java:867)
    at com.codename1.maven.CN1BuildMojo.createAntProject(CN1BuildMojo.java:562)
    at com.codename1.maven.CN1BuildMojo.executeImpl(CN1BuildMojo.java:116)
    at com.codename1.maven.AbstractCN1Mojo.execute(AbstractCN1Mojo.java:195)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:194)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.base/java.lang.ProcessImpl.create(Native Method)
    at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:492)
    at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:153)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
    ... 28 more
[WARNING] Please open the project in Android studio manually.
[WARNING] The project is located at C:\work\programming\codenameone\exxxxdmobile\android\target\exxxxdmobile-android-1.0-SNAPSHOT-android-source
[INFO] ------------------------------------------------------------------------

如果我使用 Intelij 打开同一个项目并尝试构建 APK,我会得到大致相同的结果

[INFO] Running ANT build target android-source
[INFO] Generating android gradle Project to C:\work\programming\codenameone\exxxxdmobile\android\target\exxxxdmobile-android-1.0-SNAPSHOT-android-source...
[INFO] Android gradle project already exists.  Checking to see if it needs updating...
[INFO] Sources have not changed.  Skipping android gradle project generation
[INFO] Trying to open project in Android studio
[WARNING] Failed to open project in Android studio
java.io.IOException: Cannot run program "start": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start (ProcessBuilder.java:1128)
    at java.lang.ProcessBuilder.start (ProcessBuilder.java:1071)
    at com.codename1.maven.CN1BuildMojo.openAndroidStudioProject (CN1BuildMojo.java:898)
    at com.codename1.maven.CN1BuildMojo.doAndroidLocalBuild (CN1BuildMojo.java:719)
    at com.codename1.maven.CN1BuildMojo.createAntProject (CN1BuildMojo.java:562)
    at com.codename1.maven.CN1BuildMojo.executeImpl (CN1BuildMojo.java:116)
    at com.codename1.maven.AbstractCN1Mojo.execute (AbstractCN1Mojo.java:195)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create (Native Method)
    at java.lang.ProcessImpl.<init> (ProcessImpl.java:492)
    at java.lang.ProcessImpl.start (ProcessImpl.java:153)
    at java.lang.ProcessBuilder.start (ProcessBuilder.java:1107)
    at java.lang.ProcessBuilder.start (ProcessBuilder.java:1071)
    at com.codename1.maven.CN1BuildMojo.openAndroidStudioProject (CN1BuildMojo.java:898)
    at com.codename1.maven.CN1BuildMojo.doAndroidLocalBuild (CN1BuildMojo.java:719)
    at com.codename1.maven.CN1BuildMojo.createAntProject (CN1BuildMojo.java:562)
    at com.codename1.maven.CN1BuildMojo.executeImpl (CN1BuildMojo.java:116)
    at com.codename1.maven.AbstractCN1Mojo.execute (AbstractCN1Mojo.java:195)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
[WARNING] Please open the project in Android studio manually.
[WARNING] The project is located at C:\work\programming\codenameone\exxxxdmobile\android\target\exxxxdmobile-android-1.0-SNAPSHOT-android-source

这应该是“运行 ANT 构建目标 android-source”吗?

当我使用 android studio 打开应用程序并尝试进行构建时,我无法进行构建,因为没有菜单选项可以进行构建。

类似,但对我没有帮助。 https://www.reddit.com/r/androiddev/comments/uqpefi/android_studio_build_menu_generate_apk_option/?rdt=34262

android build studio 中应该还有一些菜单选项 例如:

-> 构建捆绑包

-> 生成签名包 apk

注意,android SDK是通过环境变量引用的。

ANDROID_HOME=C:\Android\sdk

系统路径下的Android studio64.exe(c:\Android\Android Studio中)

我使用的是windows 10,java版本是11.0.21

我希望以上所有内容对某些人来说有意义。感谢您的阅读:)

关于我在制作 APK 时缺少的内容有什么想法吗?

android android-studio codenameone
1个回答
0
投票

Android 原生构建仅适用于 Java 8,因为它依赖于 Java 9 从 JDK 中删除的 JAXB。确保在 eclipse 中设置 JDK 8 以进行构建。 这应该可以解决第一个错误。

您看到的第二个错误是当我们尝试在 Android Studio 中为您打开项目时。我们找不到应该执行此操作的 windows

start
命令,我不确定为什么它不起作用。这不是致命错误,因为项目生成为
C:\work\programming\codenameone\exxxxdmobile\android\target\exxxxdmobile-android-1.0-SNAPSHOT-android-source
,您可以手动打开它。

这应该是“运行 ANT 构建目标 android-source”吗?

是的。 Maven 代码依赖于我们的一些旧 Ant 代码,并在此基础上构建。

关于最后一个错误,有点难以判断项目或环境出了什么问题。我需要有关您的 Android Studio 设置的更多详细信息,以及打开项目时是否有任何警告。我认为 Android Studio 需要 JDK 17,因此请确保它具有该版本。

此外,您的启动项目似乎使用旧版本的 Codename One (86),您现在可以更新到 133。

© www.soinside.com 2019 - 2024. All rights reserved.