问题的简短版本: Symfony的错误消息
解释说我不能同时使用Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources]
Configuration on demand is an incubating feature.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72311Library UP-TO-DATE
:app:prepareComAndroidSupportRecyclerviewV72311Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42311Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\<USERNAME>\AppData\Local\Android\sdk\build-tools\23.0.2\aapt.exe'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 12.753 secs
键
type
,我只能使用defaults
(请参阅下面的详细信息)。
为什么会这样?我该如何解决?
详细版本:
以下是我在Symfony中所做的确切顺序:
resources
将composer create-project symfony/framework-standard-edition sym-book/ '~2.5'
php app/console generate:bundle --namespace=MiddleMan/BookBundle --format=yml
的内容编辑为
src/MiddleMan/BookBundle/Resources/config/routing.yml
在目录middle_man_book_example:
path: /example
defaults: { _controller: MiddleManBookBundle:Lucky:number }
type: annotation
中,
将src/MiddleMan/BookBundle/Controller
重命名为DefaultController.php
,并将其内容编辑为
LuckyController.php
在浏览器中输入namespace MiddleMan\BookBundle\Controller;
class LuckyController
{
/**
* @Route("/lucky/number")
*/
public function numberAction()
{
$number = rand(0, 100);
return new Response(
'<html><body>Lucky number: '.$number.'</body></html>'
);
}
}
。
错误消息如下:
localhost:8000/example/lucky/number
答案 0 :(得分:2)
如果您使用type: annotation
,则不需要,实际上也不必将defaults
部分存储在routing.yml中。将在其自己的注释中为每个路径配置默认值部分,路径注释将如下所示:
/**
* Sample route
* @Route("/{id}", name="sample-route-name", defaults={"id" = 1})
* //defaults section is there to provide default values
*
* @Method({"GET", "POST"}) // not actually needed, default - GET
*/
yml路由配置如下所示:
sample_bundle_routing:
resource: "@YourBundle/Controller/"
type: annotation
prefix: /some_prefix/
<强> UPD 强>
此yml配置应放在主routing.yml
中。但你可以使用另一种变体。在主routing.yml
中放了这个:
sample_bundle_routing:
resource: "@YourBundle/Resources/config/routing.yml"
然后在您放入主routing.yml
的{{1}}作为资源,您可以写:
routing.yml
我有一个问题:为什么需要同时使用yml和注释路由配置?我的意思是你在下面的评论中写道:&#34;但我还需要在我的目录中编辑routing.yml文件,以给出控制器名称和操作方法名称。&#34;。如果使用注释路由类型 - 您可以在那里执行此操作,无需为yml中的注释路由进行配置。我的意思是:您可以将路由作为每个操作的注释,也可以作为bundle / main sample_bundle_routing:
resource: "@YourBundle/Controller/"
type: annotation
prefix: /some_prefix/
中的字符串进行路由,而不是同时进行路由!如果你使用注释路由,你唯一需要放在yml中的是 - 在哪里寻找路由配置(在我的例子中它是routing.yml
路径)。