按照我github page的教程:
添加到我的项目的父级build.gradle
:
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' <---
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
已添加到我的应用build.gradle
:
apply plugin: 'com.neenbedankt.android-apt'
...
compile 'com.airbnb:deeplinkdispatch:3.0.0'
apt 'com.airbnb:deeplinkdispatch-processor:3.0.0'
创建了一个模块类并对其进行了注释:
@DeepLinkModule
public class AppDeepLinkModule
{
}
现在,当我尝试构建时,它会显示以上错误消息:
Error:(12, 82) error: incompatible types: List<Object> cannot be converted to List<DeepLinkEntry>
然后它指向我自动生成的这个类:
public final class AppDeepLinkModuleLoader implements Parser {
public static final List<DeepLinkEntry> REGISTRY = Collections.unmodifiableList(Arrays.asList(
)); <-- this line here
@Override
public DeepLinkEntry parseUri(String uri) {
for (DeepLinkEntry entry : REGISTRY) {
if (entry.matches(uri)) {
return entry;
}
}
return null;
}
}
我已经提到了他们的示例应用,我的看似相同。 Here is a link对他们的班级做同样的事情。
我完成了进一步的步骤,直到我需要使用自动生成的类,以防这是问题,但这也没有解决问题。 AndroidManifest.xml
:
<activity
android:name=".deeplink.DeepLinkActivity"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:host="slackwebsocket"
android:scheme="http"/>
</intent-filter>
</activity>
DeepLinkActivity
:
@DeepLinkHandler({AppDeepLinkModule.class})
public class DeepLinkActivity extends AppCompatActivity
{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
}
我该如何解决这个问题?
答案 0 :(得分:2)
当应用程序未指定任何深层链接目标时,会发生此问题。在这种情况下,代码生成器会创建一个空列表,这会引发编译器错误。
您可以通过注释类来语法修复此问题,例如:一个Activity
,@DeepLink
:
@DeepLink("scheme://authority")
public class TargetActivity extends Activity {
}
代码生成器会向该列表添加一个元素。
答案 1 :(得分:0)
你试过一个简单的演员?
<?php
// Silence is golden.
?>
(List<DeepLinkEntry>)