错误: LogSet 已指定,NSIS_CONFIG_LOG 未定义。

未定义 NSIS_CONFIG_LOG

Section: "-LogSetOn"
错误: 已指定 LogSet , 但未定义 NSIS_CONFIG_LOG .
是这样的提示,请问怎么解决呢?

代码是用HM VNISEdit 脚本编辑器向导产生
代码里都有:
!include "LogicLib.nsh"
; 激活安装日志记录,该日志文件将会作为卸载文件的依据(注意,本区段必须放置在所有区段之前)
Section "-LogSetOn"
LogSet on
SectionEnd

 

根据你的 NSIS 版本下载开启安装 log 的文件覆盖你原来的 NSIS 文件夹中同名文件:
http://sourceforge.net/projects/nsis/files/
比如 NSIS 2.46,就下载 nsis-2.46-log.zip 覆盖你 NSIS 中同名文件。

AnimationTabLayout是一个可以实现选项卡布局的Android库,它提供了许多不同的选项卡切换动画,包括淡入淡出、旋转、缩放等等。在Niuniu_NSIS_SetupSkin中,我们可以使用AnimationTabLayout来实现安装界面的轮播效果。 首先,我们需要在项目的build.gradle文件中添加以下依赖项: ``` dependencies { implementation 'com.gauravk.bubblenavigation:bubblenavigation:1.0.7' } ``` 然后,在安装界面的布局文件中,我们可以定义一个AnimationTabLayout来作为选项卡布局,如下所示: ``` <com.gauravk.bubblenavigation.BubbleNavigationConstraintView android:id="@+id/bottom_navigation_view_constraint" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" app:layout_constraintBottom_toBottomOf="parent" app:menuResource="@menu/bottom_navigation_items" /> <com.gauravk.bubblenavigation.BubbleNavigationLinearView android:id="@+id/top_navigation_view_linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" app:layout_constraintTop_toTopOf="parent" app:menuResource="@menu/top_navigation_items" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_home" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_home_black_24dp" app:title="@string/home" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_search" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_search_black_24dp" app:title="@string/search" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_notifications" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_notifications_black_24dp" app:title="@string/notifications" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_profile" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_person_black_24dp" app:title="@string/profile" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_settings" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_settings_black_24dp" app:title="@string/settings" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_help" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_help_black_24dp" app:title="@string/help" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_about" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_info_black_24dp" app:title="@string/about" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_exit" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_exit_to_app_black_24dp" app:title="@string/exit" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_feedback" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_feedback_black_24dp" app:title="@string/feedback" /> <com.gauravk.bubblenavigation.BubbleToggleView android:id="@+id/btn_share" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_share_black_24dp" app:title="@string/share" /> ``` 其中,我们使用了BubbleNavigationConstraintView和BubbleNavigationLinearView来实现选项卡布局,同时添加了多个BubbleToggleView作为选项卡按钮。 接下来,在安装界面的Java代码中,我们可以使用AnimationTabLayout的setSelectedChangeListener方法来实现选项卡切换时的动画效果,如下所示: ``` bubbleNavigationConstraintView.setNavigationChangeListener(new BubbleNavigationChangeListener() { @Override public void onNavigationChanged(View view, int position) { viewPager.setCurrentItem(position, true); } }); bubbleNavigationLinearView.setNavigationChangeListener(new BubbleNavigationChangeListener() { @Override public void onNavigationChanged(View view, int position) { viewPager.setCurrentItem(position, true); } }); viewPager.setAdapter(new SectionsPagerAdapter(getSupportFragmentManager())); viewPager.setOffscreenPageLimit(5); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int position) { bubbleNavigationConstraintView.setCurrentActiveItem(position); bubbleNavigationLinearView.setCurrentActiveItem(position); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageScrollStateChanged(int state) { } }); ``` 在这段代码中,我们首先使用setNavigationChangeListener方法来设置选项卡切换时的监听器,然后使用setCurrentItem方法来设置当前选项卡的位置。接着,我们使用setAdapter方法来设置选项卡的适配器,并使用addOnPageChangeListener方法来监听选项卡的滑动事件。在onPageSelected方法中,我们使用setCurrentActiveItem方法来设置当前选项卡的位置。 通过以上步骤,我们就可以使用AnimationTabLayout来实现Niuniu_NSIS_SetupSkin的安装界面轮播效果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值